【问题标题】:javax.servlet.UnavailableException after an upgrade to WAS 7升级到 WAS 7 后的 javax.servlet.UnavailableException
【发布时间】:2012-09-11 20:48:37
【问题描述】:

我已将我的应用程序从 WAS 6 迁移到 WAS 7。代码没有显示任何编译错误或缺少任何内容,但是当我尝试运行应用程序时,出现以下异常。

 [9/19/12 9:45:37:609 EDT] 00000009 extension     W com.ibm.wsspi.webcontainer.extension.WebExtensionProcessor createServletWrapper Servlet action is currently unavailable: SRVE0203E: Servlet [action]: com.ibm.services.tools.citrus.ctl.ActionServlet was found, but is missing another required class.
    SRVE0206E: This error typically implies that the servlet was originally compiled with classes which cannot be located by the server.

所以我检查了 ffdc 异常跟踪,发现了以下异常。我已经包含了旧配置引用的所有 jar。

    [9/19/12 9:26:53:328 EDT]     FFDC Exception:javax.servlet.UnavailableException SourceId:com.ibm.ws.webcontainer.webapp.WebApp.handleError ProbeId:912 Reporter:com.ibm.ws.webcontainer.webapp.WebAppImpl@475c475c
javax.servlet.UnavailableException: SRVE0203E: Servlet [action]: com.ibm.services.tools.citrus.ctl.ActionServlet was found, but is missing another required class.
SRVE0206E: This error typically implies that the servlet was originally compiled with classes which cannot be located by the server.
SRVE0187E: Check your class path to ensure that all classes required by the servlet are present.SRVE0210I: This problem can be debugged by recompiling the servlet using only the classes in the application's runtime class path
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:534)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502)
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:354)
    at com.ibm.ws.webcontainer.webapp.WebApp.sendError(WebApp.java:3369)
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3968)
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931)
    at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1583)
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
    at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
    at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
    at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)

我想了解这个问题的含义是什么,可以通过仅使用应用程序运行时类路径中的类重新编译 servlet 来进行调试。

【问题讨论】:

    标签: java jakarta-ee websphere-7 websphere-6.1


    【解决方案1】:

    该错误表明您的 servlet 正在导入或依赖于升级后不再可用的类。由于异常没有命名缺少的类,WAS 建议您针对 WAS 7 库编译您的应用程序。如果你这样做,编译器会告诉你缺少哪个依赖类。您可能正在针对 WAS 6 或其他一些库进行编译,这就是错误延迟到运行时的原因。

    【讨论】:

    • 我已经删除了 WAS 6 或其他 jar 的所有事件,当前项目没有导入任何外部 jar 并成功编译,但我仍然收到此错误
    【解决方案2】:

    以下可能是相同问题的原因。

    1. 使用的库/jar 与构建应用程序的 Java 版本不兼容。
    2. 就我而言,我使用了两个utility.jar(对于其他可能是任何其他jar),一个是兼容的,一个是更高版本的。 已解决: 移除更高版本的 jar 时。

    【讨论】:

      【解决方案3】:

      按照以下步骤解决了问题:

      1.指向Java 8的JRE和服务器版本。即Window -> Preferences -> Java -> Installed JREs版本和WAS服务器的运行环境应该相同。 2.然后重建耳朵,在服务器上重新部署这些耳朵,之后我就可以运行应用程序了

      【讨论】:

        猜你喜欢
        • 2015-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-06
        相关资源
        最近更新 更多