【问题标题】:CXF Rest service in Websphere 8.5Websphere 8.5 中的 CXF Rest 服务
【发布时间】:2020-02-19 03:33:26
【问题描述】:
>  webapp        E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[CXFServlet]: org.apache.cxf.bus.extension.ExtensionException`
        `at org.apache.cxf.bus.extension.Extension.load(Extension.java:114)
        at org.apache.cxf.bus.extension.ExtensionManagerImpl.loadAndRegister(ExtensionManagerImpl.java:183)
        at org.apache.cxf.bus.extension.ExtensionManagerImpl.processExtension(ExtensionManagerImpl.java:158)
        at org.apache.cxf.bus.extension.ExtensionManagerImpl.loadFragment(ExtensionManagerImpl.java:151)
        at org.apache.cxf.bus.extension.ExtensionManagerImpl.load(ExtensionManagerImpl.java:143)
        at org.apache.cxf.bus.extension.ExtensionManagerImpl.load(ExtensionManagerImpl.java:96)
        at org.apache.cxf.bus.extension.ExtensionManagerBus.<init>(ExtensionManagerBus.java:129)
        at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:41)
        at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:37)
        at org.apache.cxf.bus.CXFBusFactory.createBus(CXFBusFactory.java:33)
        at org.apache.cxf.transport.servlet.CXFNonSpringServlet.loadBusNoConfig(CXFNonSpringServlet.java:45)
        at org.apache.cxf.transport.servlet.CXFNonSpringServlet.loadBus(CXFNonSpringServlet.java:38)
        at org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet.loadBus(CXFNonSpringJaxrsServlet.java:69)
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:84)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:344)
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:168)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:636)
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:480)
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
        at com.ibm.controller.InterceptFilter.doFilter(InterceptFilter.java:28)
        at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
        at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3951)
        at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1014)
        at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:287)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
        at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
        at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
        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:1892)
Caused by: java.lang.InstantiationException: org.apache.cxf.wstx_msv_validation.WoodstoxValidationImpl
        at java.lang.J9VMInternals.newInstanceImpl(Native Method)
        at java.lang.Class.newInstance(Class.java:1781)
        at org.apache.cxf.bus.extension.Extension.load(Extension.java:110)
        ... 44 more>

下面是我用过的 JARS

cxf-core-3.1.6.jar

cxf-rt-frontend-jaxrs-3.1.6.jar

cxf-rt-transsports-http-3.1.6.jar

javax.ws.rs-api-2.0.1.jar

 <servlet>
        <servlet-name>CXFServlet</servlet-name>
        <servlet-class>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.ibm.services.rest.Echo</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

谁能帮我解决这个问题。我正在使用 CXF 3.16、WAS 8.5、JDK 1.7。 WoodstoxValidationImpl 在 cxf-core jar 中可用,但不知道为什么我会收到此错误

【问题讨论】:

    标签: rest websphere cxf cxfrs


    【解决方案1】:

    您可能需要与CXF users mailing list 联系以了解社区之前是否已经看到此内容或打开JIRA issue。简而言之,我看不到 WoodstoxValidationImpl 类如何无法初始化 - 它的构造函数包括一个处理所有 Throwable 的 try/catch 块。希望CXF社区能够提供更多帮助。

    我建议您在走得太远之前升级到 WebSphere v9 或 WebSphere Liberty。 WebSphere v8.5 附带 JAX-RS 1.1 API,无法“关闭它们”,因此您能够从应用程序中的 jar 加载 JAX-RS 2.0 API 的唯一方法是使用 parent -last 类加载(或其他此类类加载技巧)。 WAS v9 和 Liberty 都提供 2.0(Liberty 也提供 2.1)API,但更重要的是,它们都允许您根据需要禁用 API。此外,FWIW、WAS v9 和 Liberty 都使用 CXF 作为底层 JAX-RS 实现,因此您可以使用更精简的 WAR 并仍然获得您正在寻找的 JAX-RS 实现。

    HTH,安迪

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-01
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      • 2013-03-19
      • 1970-01-01
      • 2016-01-27
      • 2016-08-03
      相关资源
      最近更新 更多