我的问题涉及CXF和wsdl4j_1.6.2.jar与某些东西相撞,可能是axis-wsdl4j.jar。
我看过:What's wrong with my Apache CXF client?
我的项目在战争中不包括axis-wsdl4j.jar。我还要求我们的管理员将Websphere切换到Parent Last。我仍然明白这一点:
[12/13/12 16:01:28:378 CST] 0000001b ServletWrappe E SRVE0068E: 在其中一个服务方法中抛出未捕获的异常 servlet:CXFServlet。抛出异常:java.lang.RuntimeException: org.apache.cxf.interceptor.Fault: 的javax / WSDL / XML / WSDLReader.readWSDL(Ljavax / WSDL / XML / WSDLLocator; Lorg / W3C / DOM /元素;) Ljavax / WSDL /定义; at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116) 在org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:322) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122) at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211) 在org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213) 在org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154) 在org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:129) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:187) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:110) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:763) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:166) 在com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1143) 在com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:591) 在com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:481) 在com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3453) 在com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:267) 在com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:815) 在com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1466) 在com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:119) 在com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458) 在com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:387) 在com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:267) at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 在com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) at 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 $ 1.run(AsyncChannelFuture.java:205) 在com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1473)引起:org.apache.cxf.interceptor.Fault: 的javax / WSDL / XML / WSDLReader.readWSDL(Ljavax / WSDL / XML / WSDLLocator; Lorg / W3C / DOM /元素;)Ljavax / WSDL /定义; 在org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162) 在org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128) 在org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167) 在org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:94) 在org.apache.cxf.interceptor.ServiceInvokerInterceptor $ 1.run(ServiceInvokerInterceptor.java:58) 在org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94) 在org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262) ... 26更多引起:java.lang.NoSuchMethodError:javax / wsdl / xml / WSDLReader.readWSDL(Ljavax / wsdl / xml / WSDLLocator; Lorg / w3c / dom / Element;)Ljavax / wsdl / Definition; 在org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:242) at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:191) 在org.apache.cxf.wsdl11.WSDLServiceFactory。(WSDLServiceFactory.java:92) 在org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:203) 在org.apache.cxf.jaxws.ServiceImpl。(ServiceImpl.java:147) at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:97) 在javax.xml.ws.Service。(Service.java:35) ...
项目由Maven构建,仅通过Continuum部署到Websphere;并通过请求更改所有设置。应用程序在本地Tomcat上运行完美。
编辑: 这最终由以下方法解决:
答案 0 :(得分:0)
我认为你需要禁用Jax ws引擎
尝试设置JVM属性,如下所示
com.ibm.websphere.webservices.DisableIBMJAXWSEngine=true
答案 1 :(得分:0)
这就是我要做的事。
在WAS运行时启用详细类加载,并查看包含WSDLReader的JAR。
根据详细类加载,检查这是否是您希望在运行时(开始时)使用的JAR。
HTH