【问题标题】:servlet initialization failure in websphere 6.0websphere 6.0 中的 servlet 初始化失败
【发布时间】:2011-05-13 08:06:22
【问题描述】:

我在一个 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) IBM 为我的 WAS 版本重新应用了推荐的修复程序(特别是有 IBM JDK 升级相关的修复补丁程序)ii ) 创建了服务器的新配置文件 iii) 将 Web 应用程序安装到新配置文件并开始工作。

【问题讨论】:

  • 这看起来像是产品问题。我建议打开 PMR(或升级到受支持的 WAS 版本)。

标签: servlets websphere


【解决方案1】:

我认为这不是产品问题。

为了调试这个问题,我建议放置一个简单的 servlet(一种 Hello World)并将其部署到服务器上,看看会发生什么。

初始化并不一定意味着单独的 init() 方法。

如果您的 servlet 中有一个静态块,如果您有任何已初始化的变量,它们都将成为初始化活动的一部分。

查看发生此错误时生成的 FFDC 日志,这应该可以为您提供线索。

正如 bkail 所提到的,还要确保您拥有最新的修复包,以消除产品的已知问题。

如果 hello world servlet 工作正常,建议您将 hte servlet 代码连同与此问题对应的 SystemOut 和 System Err 日志以及相关 FFDC 日志放在此处,我相信我们中的大多数人将能够帮助您有了这个

HTH

芒露

【讨论】:

  • 这是我到目前为止检查的内容,但没有成功解决问题:-i) 此 servlet 中没有静态或类级别变量。 ii) 发生此错误时,FFDC 日志中没有什么特别之处。 iii) 我还下载并部署了 WAS6.1 的最新推荐修复程序。 iv) 我的应用程序中已经有很多 servlet 被正确初始化。 v) 我在 Web 上查看 WAS 5.1 ,在其推荐的修复中,存在 PQ99326 缺陷,这似乎是相似的。检查此链接:- www-01.ibm.com/support/docview.wss?uid=swg27006879
  • hello world 类型的 servlet 是否工作。来自 WebSphere 的样本怎么样?它们有效吗?我不敢相信这是一个产品错误。
  • 我看了你提到的一个缺陷,它似乎会影响 JSP。通过查看产品支持页面来查看这是否是现有缺陷,您正在做正确的事情。老实说,我不认为这是一个产品错误,我很想看看示例应用程序或 hello world servlet 发生了什么以排除产品问题。
  • 恕我直言,任何时候发布的库抛出 NPE,这都是所述发布库中的缺陷,即使它只是在响应使用它的代码中的缺陷时发生的。
猜你喜欢
  • 2021-10-27
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-25
  • 2012-11-17
  • 2017-12-10
  • 2018-09-17
相关资源
最近更新 更多