3

我只是想在 websphere 8.0 上部署一个示例 RESTful Web 服务示例,但我得到以下信息:

错误

[12.02.2013 05:13:07:728 VET] 00000c74 E UOW= source=com.ibm.ws.webcontainer.servlet class=com.ibm.ws.webcontainer.servlet.ServletWrapper method=init org= prod= component=线程=[WebContainer:370] Uncaught.init.exception.throw.by.servlet [12.02.2013 05:13:07:728 VET] 00000c74 E UOW= source=com.ibm.ws.webcontainer.webapp class=com。 ibm.ws.webcontainer.webapp.WebApp method=logServletError org= prod= component= thread=[WebContainer : 370] SRVE0293E: [Servlet Error]-[jersey-serlvet]: java.lang.IncompatibleClassChangeError: org.objectweb.asm。 ClassVisitor at java.lang.ClassLoader.defineClassImpl(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:262) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:69) at com.ibm.ws。类加载器.CompoundClassLoader。_defineClass(CompoundClassLoader.java:852) 在 com.ibm.ws.classloader.CompoundClassLoader.localFindClass(CompoundClassLoader.java:762) 在 com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:585) 在 java.lang .ClassLoader.loadClass(ClassLoader.java:627) at java.lang.J9VMInternals.verifyImpl(Native Method) at java.lang.J9VMInternals.verify(J9VMInternals.java:85) at java.lang.J9VMInternals.verify(J9VMInternals.java :83) 在 java.lang.J9VMInternals.initialize(J9VMInternals.java:162) 在 com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:79) 在 com.sun.jersey.api.core。 PackagesResourceConfig.init(PackagesResourceConfig.java:104) 位于 com.sun.jersey.api.core.PackagesResourceConfig.(PackagesResourceConfig.java:78) 位于 com.sun.jersey.api.core。PackagesResourceConfig.(PackagesResourceConfig.java:89) 在 com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:700) 在 com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent .java:678) 在 com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:203) 在 com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373) ) 在 com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556) 在 javax.servlet.GenericServlet.init(GenericServlet.java:161) 在 com.ibm.ws.webcontainer.servlet。 ServletWrapper.init(ServletWrapper.java:336) 位于 com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168) 位于 com.ibm.ws.webcontainer.servlet.ServletWrapper。com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456) 处的 handleRequest(ServletWrapper.java:629) com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1027) 在 com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87) 在 com.ibm.ws.webcontainer .WebContainer.handleRequest(WebContainer.java:895) 在 com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 在 com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195 ) 在 com.ibm.ws.http.channel.inbound.impl 的 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)。com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:311) 上 com.ibm.ws.http.channel.inbound.impl 上的 HttpInboundLink.handleNewRequest(HttpInboundLink.java:522)。 com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 处的 HttpInboundLink.ready(HttpInboundLink.java:282) com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete( NewConnectionInitialReadCallback.java:113) 在 com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 在 com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 在 com .ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 在 com.ibm.io.async.AsyncFuture。在 com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 在 com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 在 com.ibm 完成(AsyncFuture.java:138) .io.async.ResultHandler$2.run(ResultHandler.java:905) 在 com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1783)

web.xml

<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Restful Web Application</display-name>

    <servlet>
        <servlet-name>jersey-serlvet</servlet-name>
        <servlet-class>
            com.sun.jersey.spi.container.servlet.ServletContainer
        </servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.mkyong.rest.JSONService</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>jersey-serlvet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>

</web-app>
4

1 回答 1

5

这似乎是此处IBM 论坛上讨论的产品缺陷,因此发布了修复程序。引用链接的引用,问题是;

WebSphere Application Server 使用的内部 ASM 库可供应用程序访问。如果应用程序还部署了 ASM 库,则可能会发生冲突。

论坛中列出了一些可能的解决方法,这有助于通过修改类路径来解决冲突。由于您目前不是 8.5 而是 8.0,我建议您提高 PMR 以验证您的问题是否相同,并针对您的版本进行修复。

于 2013-02-14T23:47:46.267 回答