-1

WebSphere 打印

8/7/13 11:43:47.318 000000AB SystemOut DETAIL 收据为空?=空

8/7/13 11:43:47.318 000000AB SystemOut DETAIL 错误

8/7/13 11:43:47.318 000000AB com.ibm.ws.webcontainer.servlet.ServletWrapper SEVERE com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: servlet 的服务方法之一引发了异常应用程序 [MyWar_war] 中的 [ReceiptReportServlet]。异常创建:[java.lang.NullPointerException at servlet.ReceiptReportServlet.doGet(ReceiptReportServlet.java:61) at javax.servlet.http.HttpServlet.service(HttpServlet.java:575) at javax.servlet.http.HttpServlet.service( HttpServlet.java:668) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1227) 在 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。

代替

收据为空?=空

真的

4

1 回答 1

4

这看起来更像是操作顺序而不是 WAS 的问题。你的打印线

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

是问题所在。如果收据对象为空或不为空,这不会打印 true 或 false。它所做的是将字符串"receipt is null? "与接收.toString()方法的结果连接起来,然后检查它是否等于null. 这就是为什么您看到它只在该行上打印错误。

如果你真的想在那里检查一个空对象,请在你的空检查周围添加一些适当的 ()。

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

这应该像您期望的那样打印 true 或 false。

至于为什么收据在一种环境中为空而在另一种环境中不为空,是我们没有足够的信息来回答的问题。您的代码片段没有向我们展示该对象来自何处或被实例化。

于 2013-08-07T13:31:45.357 回答