我在网络应用程序中有许多servlet;由于一些stange原因,只有其中一个总是在初始化失败时出现以下错误跟踪: -
00000045 ServletWrappe E SRVE0100E:未实现servlet MyServletX抛出的init()异常:java.lang.NullPointerException 在com.ibm.ws.webcontainer.WebAppPmiListener.onServletStartInit(WebAppPmiListener.java:120) 在com.ibm.ws.webcontainer.webapp.FireOnServletStartInit.fireEvent(WebAppEventSource.java:237) 在com.ibm.ws.webcontainer.util.EventListeners.fireEvent(EventListeners.java:48) 在com.ibm.ws.webcontainer.webapp.WebAppEventSource.onServletStartInit(WebAppEventSource.java:105) 在com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:261) 在com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:444) 在com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2841) 在com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:220) 在com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:204) 在com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1681) 在com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:77) 在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) 在com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94) at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:548) 在com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:601) 在com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:934) 在com.ibm.ws.tcp.channel.impl.WorkQueueManager $ Worker.run(WorkQueueManager.java:1021) 在com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1332)
我无法弄清楚这个servlet是否有任何额外的普通。此servlet中没有init()方法,它扩展了HTTPServlet。知道可能是什么原因吗?我使用的是websphere server 6.0.x.在这种情况下如何获得更多调试信息?
我还不知道上述错误的原因,但这就是它开始奇怪的工作方式: - i)IBM为我的WAS版本重新应用推荐的修复程序(特别是有IBM JDK升级相关的修补程序补丁)ii )创建了一个新的服务器配置文件iii)将Web应用程序安装到新的配置文件,它开始工作。
答案 0 :(得分:0)
我不认为这是产品问题。
为了调试这个问题,我建议放置一个简单的servlet(一种Hello World)并将其部署到服务器,看看会发生什么。
初始化并不一定意味着单独使用init()方法。
如果servlet中有静态块,如果有任何初始化的变量,它们都将成为初始化活动的一部分。
查看发生此错误时生成的FFDC日志,这应该为您提供线索。
正如bkail所提到的,还要确保你拥有最新的修补包,以消除产品的已知问题。
如果hello world servlet工作,建议你将hte servlet代码与此问题对应的SystemOut和System Err日志以及相关的FFDC日志放在一起,我相信我们大多数人都能帮到你用这个
HTH
Manglu