Maven tomcat 7插件Web服务部署中的问题

时间:2015-07-03 11:26:53

标签: java web-services maven tomcat

我们使用maven tomcat 7插件,部署war应用程序。在我们的战争应用程序中,我们正在尝试连接到另一个Web服务。我们得到了以下异常

java.lang.RuntimeException: MASM0015: Class [ com.sun.xml.ws.assembler.jaxws.HandlerTubeFactory ] does not implement [ com.sun.xml.internal.ws.assembler.dev.TubeFactory ] interface
at com.sun.xml.internal.ws.assembler.TubeCreator.<init>(TubeCreator.java:63)
at com.sun.xml.internal.ws.assembler.TubelineAssemblyController.initializeTubeCreators(TubelineAssemblyController.java:116)
at com.sun.xml.internal.ws.assembler.TubelineAssemblyController.getTubeCreators(TubelineAssemblyController.java:79)
at com.sun.xml.internal.ws.assembler.MetroTubelineAssembler.createClient(MetroTubelineAssembler.java:103)
at com.sun.xml.internal.ws.client.Stub.createPipeline(Stub.java:328)
at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:295)
at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:228)
at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:243)
at com.sun.xml.internal.ws.client.sei.SEIStub.<init>(SEIStub.java:84)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getStubHandler(WSServiceDelegate.java:814)
at com.sun.xml.internal.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:803)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:436)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:404)
at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:386)

java.lang.RuntimeException: MASM0015: Class [ com.sun.xml.ws.assembler.jaxws.HandlerTubeFactory ] does not implement [ com.sun.xml.internal.ws.assembler.dev.TubeFactory ] interface at com.sun.xml.internal.ws.assembler.TubeCreator.<init>(TubeCreator.java:63) at com.sun.xml.internal.ws.assembler.TubelineAssemblyController.initializeTubeCreators(TubelineAssemblyController.java:116) at com.sun.xml.internal.ws.assembler.TubelineAssemblyController.getTubeCreators(TubelineAssemblyController.java:79) at com.sun.xml.internal.ws.assembler.MetroTubelineAssembler.createClient(MetroTubelineAssembler.java:103) at com.sun.xml.internal.ws.client.Stub.createPipeline(Stub.java:328) at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:295) at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:228) at com.sun.xml.internal.ws.client.Stub.<init>(Stub.java:243) at com.sun.xml.internal.ws.client.sei.SEIStub.<init>(SEIStub.java:84) at com.sun.xml.internal.ws.client.WSServiceDelegate.getStubHandler(WSServiceDelegate.java:814) at com.sun.xml.internal.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:803) at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:436) at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:404) at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:386)

我们使用java 8和jax-rt-2.2.8.jar来构建Web应用程序。

我们已根据以下内容更改了源代码。

Class provideClass = Class.forName( "com.sun.xml.internal.ws.spi.ProviderImpl");
provider = (Provider) provideClass.newInstance();
ServiceDelegate delegate = provider.createServiceDelegate( urlWsdl, new QName( namespaceURI, serviceName ), (Class<? extends Service>) bindClass );
QName qName = new QName( namespaceURI, portName );
WebServicesPT port;
port = ( WebServicesPT ) delegate.getPort( qName, bindClass );

当我们使用普通的tomcat 8和7服务器时,这段代码运行正常。

但Maven tomcat插件给出了以上异常。

似乎jax.rt jar用于TubeFactory实现。它应该来自jre / lib / rt.jar。

对我的任何支持都可以解决此问题并非常感谢您的反馈:)

0 个答案:

没有答案