一直在做ITOOJava权限,做这一部分,一上来就遇到很多的问题,这些问题因为先前没有做过,有点心有余而力不足。问题很多,大致是一上来之后,看懂了就不觉得难了。
我将错误一直记录在我的onenote里面,为之后的学习提供资料,这些问题大致都是遇到了解决了,下回就没有问题了,做完之后一个感觉,这个项目封装的很不错,一个新手上来,并没有非多大的力气就能很快加入到项目中,而且项目有很好的封装性,一般的代码是不需要动的。
看看错误:
11:27:40,412 ERROR[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/itoo-authority-start-web]](ServerService Thread Pool -- 56) JBWEB000289: Servlet action threw load()exception: javax.naming.NameNotFoundException: itoo-authority-role-ear/itoo-authority-role-core-0.0.1-SNAPSHOT/RoleBeanImpl!com.tgb.itoo.authority.service.RoleBean-- servicejboss.naming.context.java.global.itoo-authority-role-ear."itoo-authority-role-core-0.0.1-SNAPSHOT"."RoleBeanImpl!com.tgb.itoo.authority.service.RoleBean"
这个问题名称找不到,其实说白了就是在Maven仓库中没有RoleBean,一般是没有的,就在Maven中我们将仓库中清空,之后重新生成就好了,如果还不行的话,就更直接一点,在jboss中部署这个Bean就可以了。
15:11:57,581 ERROR[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/itoo-authority-start-web].[action]](http-/0.0.0.0:8091-9) JBWEB000236: Servlet.service() for servlet action threwexception: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast tocom.tgb.itoo.authority.entity.Notice
无法映射出Notice实体类,Notice对应数据库中的表ta_notice,这个我们看一下得到的实体集合就能看出来了。
我们先看一下正确的:
而我们传回来的是这样的:
是不是就很清楚了,就是很来传递的是一个Notice实体,传来的是Object,这个很简单,就是因为我调用的后台的方法不是映射实体而是映射表造成的。
Caused by:java.lang.ClassNotFoundException: com.tgb.itoo.authority.entity.User from[Module"deployment.itoo-authority-userrole-ear.ear.itoo-authority-userrole-core-0.0.1-SNAPSHOT.jar:main"from Service Module Loader]
类不能那个找到,这个异常是类没有加载成功,找不到ear,我们重新生成一下就行了。
11:31:19,173 ERROR[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/itoo-authority-start-web].[action]](http-/0.0.0.0:8091-1) JBWEB000236: Servlet.service() for servlet action threwexception: java.net.ConnectException: Connection refused: connect
连接被拒绝,看看能不能ping通,或者是CAS没有启动的原因。
14:41:36,770 ERROR [org.jboss.as.ejb3.invocation](http-/0.0.0.0:8091-1) JBAS014134: 对组件NoticeBeanImpl 的方法 public abstractcom.tgb.itoo.authority.entity.Noticecom.tgb.itoo.authority.service.NoticeBean.findNoticeByNoticeId(java.lang.String,java.lang.String)的 EJB 调用失败:javax.ejb.EJBException: java.lang.NullPointerException
EJB调用失败,空指针异常,方法中有参数为null。
Caused by:java.lang.ClassNotFoundException: com.tgb.itoo.authority.entity.Discution from[Module "org.apache.shiro:main" from local module loader @768b970c(finder: local module finder @5a4041cc (roots:E:\java\jboss-eap-6.2\modules,E:\java\jboss-eap-6.2\modules\system\layers\base))]
这个异常,是加上shiro的问题,一般就引起Friebug崩溃,重启一下Friebug就可以了。
12:11:38,827INFO [stdout] (ServerService Thread Pool-- 81) Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure
连接问题,deleteByIds这个方法的第一个参数Class
14:36:52,181 ERROR[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/itoo-authority-start-web].[action]](http-/0.0.0.0:8091-1) JBWEB000236: Servlet.service() for servlet action threwexception: java.lang.IllegalArgumentException: Unknown return value type[java.lang.Boolean]
不清楚返回值类型,这个应该很好解决了。
总结:
一个项目首先要做,做的多了,一边做一边思考,多想一下,这样,原理就慢慢明白了,学习是一个漫长的事情,经历的多了,自然就知道问题出在哪里了。