2013-08-07 79 views
-1

WebSphere打印WebSphere相等性檢查失敗

8/7/13 11:43:47.318 000000AB SystemOut DETAIL收據爲空? = NULL

13年8月7日11:43:47.318 000000AB SystemOut DETAIL假

13年8月7日11:43:47.318 000000AB com.ibm.ws.webcontainer.servlet.ServletWrapper重症com.ibm .ws.webcontainer.servlet.ServletWrapper服務SRVE0068E:應用程序[MyWar_war]中的servlet [ReceiptReportServlet]的服務方法之一引發了異常。創建異常:[javax.servlet.http.HttpServlet.HttpServlet.java中的java.lang.NullPointerException異常 .service(HttpServlet.java:668) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java :776) 在com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:458) 在com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 在玉米.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032) 在com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87) 在com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:909) 在com.ibm.ws. webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 在com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200) 在com.ibm.ws.http.channel.inbound.impl。 HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526) at com.ibm.ws.http.channel.inbound。 impl.HttpInboundLink.processRequest(HttpInboundLink.java:312) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283) at com.ibm .ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 在com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) 在com.ibm.ws .tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions (AsyncChannelFuture.java:161) 在com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 在com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 在玉米.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) at com .ibm.io.async.ResultHandler $ 2.run(ResultHandler.java:905) 在com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1862) ]

代替

收據爲空? = NULL

真正

+1

您能否將您的代碼和日誌的複製/粘貼片段替換爲屏幕截圖? – mthmulders

+0

'request'沒有設置。這樣做的代碼不是你的問題的一部分。 –

回答

4

這看起來更像是一個問題與操作順序,而不是了。您的打印線

System.out.println("receipt is null? " + receipt == null); 

是問題所在。如果收據對象爲空或不是真,則不打印真假。它的作用是連接字符串"receipt is null? "與收據的.toString()方法的結果,然後檢查它是否等於null。這就是爲什麼你看到它只在該行打印false。

如果你真的想檢查一個空對象,那麼在你的空檢查周圍添加一些適當的()。

System.out.println("receipt is null? " + (receipt == null)); 

這應該按照您的預期打印真假。

至於爲什麼收據在一個環境中爲空而在另一個環境中不爲空則是我們沒有足夠的信息來回答的問題。您的代碼片段不會告訴我們該對象來自哪裏或實例化了哪些對象。