websphere 6.0 中 servlet 初始化失败
我的 Web 应用程序中有许多 servlet;由于某种奇怪的原因,只有其中一个总是在初始化时失败,并出现以下错误跟踪:-
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) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:367) 在 com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94) 在 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 服务器 6.0.x。这种情况下如何获取更多的调试信息呢?
好吧,我仍然不知道上述错误的原因,但这就是它开始奇怪工作的方式:- i) 为我的 WAS 版本重新应用 IBM 推荐的修复程序(特别是有 IBM JDK 升级相关的修复补丁) ii) 创建了一个服务器的新配置文件 iii) 将 Web 应用程序安装到新配置文件并开始工作。
I have many servlets in a web applicaton; for some stange reason, only and only one of them always fails in initialization with the following error trace:-
00000045 ServletWrappe E SRVE0100E: Did not realize init() exception thrown by servlet MyServletX: java.lang.NullPointerException
at com.ibm.ws.webcontainer.WebAppPmiListener.onServletStartInit(WebAppPmiListener.java:120)
at com.ibm.ws.webcontainer.webapp.FireOnServletStartInit.fireEvent(WebAppEventSource.java:237)
at com.ibm.ws.webcontainer.util.EventListeners.fireEvent(EventListeners.java:48)
at com.ibm.ws.webcontainer.webapp.WebAppEventSource.onServletStartInit(WebAppEventSource.java:105)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:261)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:444)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2841)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:220)
at com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:204)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1681)
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:548)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:601)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:934)
at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1021)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332)
I could not figure out if there is anything extra ordinary with this servlet. There is no init() method in this servlet and it extends HTTPServlet. Any idea what could be reason? I am using websphere server 6.0.x. How to get more debugging information in this case?
Well I don't know still cause of above error, but this is how it started working strangely:- i) Re-applied recommended fixes by IBM for my WAS version (especially there are IBM JDK upgrade related fix patches) ii) created a new profile of server iii) Install web application to new profile and it started working.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不认为这是产品问题。
为了调试这个问题,我建议放置一个简单的 servlet(类似于 Hello World)并将其部署到服务器,看看会发生什么。
初始化并不一定意味着单独的 init() 方法。
如果您的 servlet 中有一个静态块,如果您有任何已初始化的变量,它们都将成为初始化活动的一部分。
查看发生此错误时生成的 FFDC 日志,这应该可以为您提供线索。
正如 bkail 提到的,还要确保您拥有最新的修复包,以消除产品的已知问题。
如果 hello world servlet 工作正常,建议您将 servlet 代码以及与此问题相对应的 SystemOut 和 System Err 日志以及相关 FFDC 日志放在此处,我相信我们大多数人都能够帮助您解决此
HTH
曼鲁
I don't think this is a product issue.
To debug this problem what i would suggest is to place a simple servlet (kind of Hello World) and deploy it to the server and see what happens.
initialization does not necessarily mean init() method alone.
If you have a static block in your servlet, if you have any variables that are initialized they would all be part of the initialization activity.
Look at the FFDC logs that were generated when this error occurred and that should provide you with clues.
As bkail mentioned, also ensure that yo have the latest fixpacks just to eliminate known problems with the product.
if the hello world servlet works, suggest you place hte servlet code here along with the SystemOut and System Err logs that correspond to this issue along with the relevant FFDC logs and i am sure most of us will be able to help you out with this
HTH
Manglu