項目常見異常+基本解決方案

1.

 

13:00:47,601ERROR [com.tgb.itoo.authority.cache.SerializeUtils] (Thread-119) Failed todeserialize: java.lang.Exception: Failed to deserialize

atcom.tgb.itoo.authority.cache.SerializeUtils.deserialize(SerializeUtils.java:42)[itoo-shiro-utils-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]

--shiro保存session,序列化 反序列化時報錯

解決辦法:主要出在shiro,找權限解決即可

 

2.

14:25:34,960ERROR[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/itoo-basic-place-web].[action]](http-/0.0.0.0:8080-4) JBWEB000236: Servlet.service() for servlet action threwexception: java.lang.NullPointerException

atcom.tgb.itoo.basic.eao.impl.RoomEaoImpl.queryPageEntityByRoom(RoomEaoImpl.java:72)[itoo-basic-place-core-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]

--變量賦值爲空值,沒有經過判斷就直接使用;這裏在調用queryPageEntityByRoom的方法的時候,某個變量產生了這樣的情況

解決辦法:加強對變量的null值和字符串爲空的判斷

3.

Caused by:java.lang.ClassNotFoundException:com.tgb.itoo.exam.entity.ExamineeArrangement from [Module"org.apache.shiro:main" from local module loader @ba4d54 (finder:local module finder @bc6874 (roots:/usr/local/jboss6.2/modules,/usr/local/jboss6.2/modules/system/layers/base))]

atorg.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197)[jboss-modules.jar:1.3.0.Final-redhat-2]

atorg.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:443)[jboss-modules.jar:1.3.0.Final-redhat-2]

--依賴的某個類或者說某個jar包,在運行加載的時候沒有通過程序加載上,導致該異常

解決辦法:清理maven倉庫,對maven倉庫進行更新即可

 

4.

09:12:52,873WARN [org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector](ServerService Thread Pool -- 54) Could notregister a EJB receiver for connection to 192.168.24.115:4447:java.lang.RuntimeException: java.net.ConnectException: Connection refused: nofurther information

 

--通過給出地址查找所需服務的時候,無法連接到jboss服務

原因:1.ip地址錯誤;2.端口錯誤 3.jboss未啓動

解決方案:排查以上三個原因

 

5.

09:05:34,750ERROR[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/itoo-basic-place-web].[action]](http-/0.0.0.0:8080-5) JBWEB000236: Servlet.service() for servlet action threwexception: java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling[appName:itoo-log-ear, moduleName:itoo-log-core-0.0.1-SNAPSHOT, distinctName:]combination for invocation contextorg.jboss.ejb.client.EJBClientInvocationContext@14154a3

 

--找到jboss服務器後,在服務器部署的服務中無法找到目標服務;此時可能是:

1.服務所在ear部署失敗;(如果所有代碼無錯誤,而且jinkens構建還能成功,部署報錯,此時應清理工作空間,按照順序重新構建)

2.遠程連接地址填寫錯誤

 

解決方案

 

try … catch(打印到控制檯,並向上拋出) … finally  + 異常日誌記錄

 

需要考慮的問題:

我們的itoo項目,屬於一個多層的j2ee項目,需要考錄的問題有:

如何在一個多層的j2ee項目中定義相應的異常類?

在項目中的每一層如何進行異常處理?

異常何時被拋出?

異常何時被記錄?

異常該怎麼記錄?

 

@Override

publicboolean deleteByIdsGeneric(String[] ids, String dataBaseName) {

booleanflag = false;

//獲得當前操作的數據庫名字

this.dataBaseName= dataBaseName;

//取得實體管理器

EntityManagerem = getEntityManager();

try {

// 驗證數據的有效性

if (ids != null && ids.length> 0) {

for(String id : ids) {

//deleteEntityByIdGeneric(id,dataBaseName);

Stringhql = "update " + clazz.getSimpleName()

+" as o set o.isDelete = 1 where o.id =:id";

Queryquery = em.createQuery(hql);

//設置參數

query.setParameter("id",id);

//執行更新操作

query.executeUpdate();

flag= true;

}

 

if(logger.isDebugEnabled()) {

logger.debug("Eao執行邏輯刪除成功!"+ getEntityManager().getClass().getName());

}

 

}

 

}catch (Exception e) {

flag= false;

System.out.print(e);

logger.error("Eao執行邏輯刪除失敗!",e);

}

returnflag;

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章