[06-5-28 8:46:11:594 CST] 00000041 ExceptionUtil E?? CNTR0020E: 在調(diào)用 bean“BeanId(AFCDAS_EAR#AFCDAS_FACADE.jar#LoginFacade, null)”上的方法“l(fā)oginRegister”期間,EJB 拋出意外(未聲明的)異常。異常數(shù)據(jù):java.lang.NullPointerException
?at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:431)
?at oracle.jdbc.dbaccess.DBDataSetImpl.clearItem(DBDataSetImpl.java:3528)
?at oracle.jdbc.driver.OraclePreparedStatement.clearParameters(OraclePreparedStatement.java:3401)
?at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.resetStatement(WSJdbcConnection.java:2179)
?at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:1830)
?at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:1782)
?at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:442)
?at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
?at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
?at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
?at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2048)
?at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2427)
?at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)
?at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
?at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
?at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
?at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
?at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
?at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
?at com.mtrc.afcdas.dao.base.HibernateDAOImpl.create(HibernateDAOImpl.java:70)
?at com.mtrc.afcdas.ejb.session.LoginFacadeBean.loginRegister(LoginFacadeBean.java:141)
?at com.mtrc.afcdas.ejb.session.EJSLocalStatelessLoginFacade_4ee4fc9e.loginRegister(EJSLocalStatelessLoginFacade_4ee4fc9e.java:152)
?at com.mtrc.afcdas.delegate.LoginDelegate.loginResgister(LoginDelegate.java:61)
?at com.mtrc.afcdas.web.struts.action.LoginAction.loginAction(LoginAction.java:78)
?at com.mtrc.afcdas.web.struts.action.LoginAction.appExecute(LoginAction.java:48)
?at com.mtrc.afcdas.framework.web.AppBaseAction.execute(AppBaseAction.java:55)
?at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
?at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
?at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
?at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
?at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
?at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
?at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1212)
?at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:629)
?at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:80)
?at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1657)
?at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:77)
?at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:421)
?at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:367)
?at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94)
?at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java(Compiled Code))
?at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code))
?at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java(Compiled Code))
?at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java(Compiled Code))
?at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))
websphere v6有自己默認(rèn)的日志處理。
?????? 這里引用一段譯自文章(http://www.webspherepower.com/issues/issue200405/00001281001.html )的話:
????? ?大部分的Log實(shí)現(xiàn)都有五種標(biāo)準(zhǔn)的日志消息級(jí)別,他們是DEBUG, INFO, WARN, ERROR,?和 FATAL。
?????? ?IBM的TrLog(Trace Log的簡(jiǎn)寫(xiě))? 支持這五種級(jí)別,并且還額外支持一種級(jí)別TRACE。Trace級(jí)別比Debug要低,如果你設(shè)置你的日志級(jí)別為Debug ,那么Trace級(jí)別的信息就不會(huì)輸出到Log中。Trace 只是額外提供了一種用于解決復(fù)雜問(wèn)題的日志級(jí)別。
?
??????? 要控制Trlog中的Trace級(jí)別的日志只能通過(guò)WAS的管理控制臺(tái)。不像Log4J等其他的日志實(shí)現(xiàn)使用屬性文件來(lái)配置參數(shù),TrLog直接響應(yīng)來(lái)自于控制臺(tái)的操縱。控制臺(tái)操作員可以通過(guò)內(nèi)置于管理控制臺(tái)的工具來(lái)修改不同日志的日志級(jí)別。
如果想用自定義的輸出方式來(lái)輸出日志信息(如:apache的commons-logging),需以下幾個(gè)步驟配置:
1)在一個(gè)公共的項(xiàng)目(其他的項(xiàng)目都會(huì)引用它)中引入common-logging.jar ,log4j.jar
?? 并且把配置好的common-logging.properties 和log4j.properties 放在根目錄下面
2)在websphere自己提供的集成開(kāi)發(fā)環(huán)境RAD中,在EAR項(xiàng)目的應(yīng)用程序部署描述描述符中,選擇“部署”頁(yè),在應(yīng)用程序區(qū)域,
??? 選中EAR項(xiàng)目,并將其類(lèi)載入方式由原來(lái)的Parent_First改為Parent_Last ,其他的維持不變
3)在管理控制臺(tái)中有待嘗試,這里先引用他人的一段話(http://forum.javaeye.com/bloglist.php?userid=8514)
??? 在控制臺(tái)中的"環(huán)境->共享庫(kù)"頁(yè)面中添加一個(gè)共享庫(kù),類(lèi)路徑指向要采用的日志文件,這里是添加commons-logging.jar和Log4j.jar,保存設(shè)置.
??? 在"企業(yè)應(yīng)用程序 > 你的應(yīng)用程序 > 庫(kù)引用"下添加剛才創(chuàng)建的共享庫(kù),將"類(lèi)裝入器方式 "改為最后裝入父類(lèi)
參考的文章有:
Utilizing the IBM Trace Log in Websphere Appliation?Server?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? (
http://www.webspherepower.com/issues/issue200405/00001281001.html
)
Integrating Jakarta Commons Loggin
(
http://www-1.ibm.com/support/docview.wss?uid=swg27004610
)
雖然這些文章里面介紹的是基于WAS 5 ,但是原理都是相同的