1. 程式人生 > >Java許可權中遇到的問題彙總

Java許可權中遇到的問題彙總

一直在做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<T> t,要注意一下,這個不能隨便寫的。

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]

不清楚返回值型別,這個應該很好解決了。

總結:

一個專案首先要做,做的多了,一邊做一邊思考,多想一下,這樣,原理就慢慢明白了,學習是一個漫長的事情,經歷的多了,自然就知道問題出在哪裡了。