Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Glassfish V3中使用CXF部署WAR_Java_Web Services_Jakarta Ee_Cxf_Glassfish 3 - Fatal编程技术网

Java 在Glassfish V3中使用CXF部署WAR

Java 在Glassfish V3中使用CXF部署WAR,java,web-services,jakarta-ee,cxf,glassfish-3,Java,Web Services,Jakarta Ee,Cxf,Glassfish 3,我正在尝试在GF V3中部署一个依赖于CXF的WAR,我得到以下异常: [#|2011-02-08T07:34:15.736-0800|WARNING|oracle-glassfish3.0.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=32;_ThreadName=http-thread-pool-8080-(2);|StandardWrapperValve[MyServlet]: PWC140

我正在尝试在GF V3中部署一个依赖于CXF的WAR,我得到以下异常:

[#|2011-02-08T07:34:15.736-0800|WARNING|oracle-glassfish3.0.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=32;_ThreadName=http-thread-pool-8080-(2);|StandardWrapperValve[MyServlet]: PWC1406: Servlet.service() for servlet MyServlet threw exception
com.sun.xml.ws.util.ServiceConfigurationError: com.sun.xml.ws.api.pipe.TransportPipeFactory: Provider com.sun.enterprise.jbi.serviceengine.bridge.transport.JBITransportPipeFactory is specified in bundle://254.0:0/META-INF/services/com.sun.xml.ws.api.pipe.TransportPipeFactory but not found
        at com.sun.xml.ws.util.ServiceFinder.fail(ServiceFinder.java:241)
        at com.sun.xml.ws.util.ServiceFinder.access$100(ServiceFinder.java:141)
        at com.sun.xml.ws.util.ServiceFinder$LazyIterator.next(ServiceFinder.java:376)
        at com.sun.xml.ws.api.pipe.TransportTubeFactory.create(TransportTubeFactory.java:129)
        at com.sun.xml.ws.transport.DeferredTransportPipe.<init>(DeferredTransportPipe.java:82)
        at com.sun.xml.ws.api.pipe.ClientTubeAssemblerContext.createTransportTube(ClientTubeAssemblerContext.java:311)
        at com.sun.xml.ws.assembler.jaxws.TransportTubeFactory.createTube(TransportTubeFactory.java:62)
        at com.sun.xml.ws.assembler.TubeCreator.createTube(TubeCreator.java:77)
        at com.sun.xml.ws.assembler.TubelineAssemblerFactoryImpl$MetroTubelineAssembler.createClient(TubelineAssemblerFactoryImpl.java:121)
        at com.sun.xml.ws.client.Stub.createPipeline(Stub.java:224)
        at com.sun.xml.ws.client.Stub.<init>(Stub.java:201)
        at com.sun.xml.ws.client.Stub.<init>(Stub.java:174)
        at com.sun.xml.ws.client.sei.SEIStub.<init>(SEIStub.java:81)
        at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:602)
        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:344)
        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:326)
        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:308)
        at javax.xml.ws.Service.getPort(Service.java:99)
        at com.mycompany.myapp.webserviceclient.SomeWebserviceService.getSomeWebservicePort(SomeWebserviceService.java:58)
[#||2011-02-08T07:34:15.736-0800 | WARNING | oracle-glassfish3.0.1 | javax.enterprise.system.container.web.com.sun.enterprise.web | u ThreadID=32;_ThreadName=http-thread-pool-8080-(2);| StandardWrapperValve[MyServlet]:PWC1406:Servlet的Servlet.service()抛出异常
com.sun.xml.ws.util.ServiceConfigurationError:com.sun.xml.ws.api.pipe.TransportPipeFactory:中指定了提供程序com.sun.enterprise.jbi.serviceengine.bridge.transport.JBITransportPipeFactorybundle://254.0:0/META-INF/services/com.sun.xml.ws.api.pipe.TransportPipeFactory,但未找到
位于com.sun.xml.ws.util.ServiceFinder.fail(ServiceFinder.java:241)
com.sun.xml.ws.util.ServiceFinder.access$100(ServiceFinder.java:141)
位于com.sun.xml.ws.util.ServiceFinder$LazyIterator.next(ServiceFinder.java:376)
位于com.sun.xml.ws.api.pipe.TransportTubeFactory.create(TransportTubeFactory.java:129)
位于com.sun.xml.ws.transport.DeferredTransportPipe。(DeferredTransportPipe.java:82)
位于com.sun.xml.ws.api.pipe.ClientTubeAssemblerContext.CreateTransportube(ClientTubeAssemblerContext.java:311)
位于com.sun.xml.ws.assembler.jaxws.TransportTubeFactory.createTube(TransportTubeFactory.java:62)
位于com.sun.xml.ws.assembler.TubeCreator.createTube(TubeCreator.java:77)
位于com.sun.xml.ws.assembler.tubelineassemblerfactorympl$metrotubelineasembler.createClient(tubelineassemblerfactorympl.java:121)
位于com.sun.xml.ws.client.Stub.createPipeline(Stub.java:224)
位于com.sun.xml.ws.client.Stub(Stub.java:201)
位于com.sun.xml.ws.client.Stub(Stub.java:174)
位于com.sun.xml.ws.client.sei.SEIStub。(SEIStub.java:81)
在com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:602)上
在com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:344)
位于com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:326)
在com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:308)
位于javax.xml.ws.Service.getPort(Service.java:99)
在com.mycompany.myapp.webserviceclient.somewebservices.getsomewebserviceceport(somewebservices.java:58)
这个分类告诉我,我的WAR\lib目录中有一个bundle导致了问题,但是当我展开WAR并搜索META-INF\services时,我没有找到任何与异常中概述的内容相近的内容

我最初在war\lib目录中有CXF及其可传递依赖项,但后来我删除了它,仍然遇到相同的错误

在搜索谷歌时,没有什么有用的东西出现,我在这里不知所措

有人知道这里发生了什么吗

编辑#1


这种情况的另一个症状是,已部署web服务的测试仪页面无法正常工作。

我的glassfish3.1也有类似问题。下面是堆栈跟踪

Caused by: com.sun.xml.ws.util.ServiceConfigurationError: com.sun.xml.ws.api.pipe.TransportPipeFactory: Provider com.sun.enterprise.jbi.serviceengine.bridge.transport.JBITransportPipeFactory is specified in bundle://96.0:0/META-INF/services/com.sun.xml.ws.api.pipe.TransportPipeFactory but not found
    at com.sun.xml.ws.util.ServiceFinder.fail(ServiceFinder.java:245)
    at com.sun.xml.ws.util.ServiceFinder.access$100(ServiceFinder.java:145)
    at com.sun.xml.ws.util.ServiceFinder$LazyIterator.next(ServiceFinder.java:380)
    at com.sun.xml.ws.api.pipe.TransportTubeFactory.create(TransportTubeFactory.java:133)
    at com.sun.xml.ws.transport.DeferredTransportPipe.<init>(DeferredTransportPipe.java:86)
    at com.sun.xml.ws.api.pipe.ClientTubeAssemblerContext.createTransportTube(ClientTubeAssemblerContext.java:315)
    at com.sun.xml.ws.assembler.jaxws.TransportTubeFactory.createTube(TransportTubeFactory.java:67)
    at com.sun.xml.ws.assembler.TubeCreator.createTube(TubeCreator.java:84)
    at com.sun.xml.ws.assembler.TubelineAssemblerFactoryImpl$MetroTubelineAssembler.createClient(TubelineAssemblerFactoryImpl.java:130)
    at com.sun.xml.ws.client.Stub.createPipeline(Stub.java:228)
    at com.sun.xml.ws.client.Stub.<init>(Stub.java:205)
    at com.sun.xml.ws.client.Stub.<init>(Stub.java:178)
    at com.sun.xml.ws.client.sei.SEIStub.<init>(SEIStub.java:85)
    at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:608)
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:348)
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:330)
    at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312)
    at javax.xml.ws.Service.getPort(Service.java:134)
    at org.glassfish.webservices.monitoring.WebServiceTesterServlet.initializePort(WebServiceTesterServlet.java:563)
    at org.glassfish.webservices.monitoring.WebServiceTesterServlet.doGet(WebServiceTesterServlet.java:169)
    at org.glassfish.webservices.monitoring.WebServiceTesterServlet.invoke(WebServiceTesterServlet.java:104)
    at org.glassfish.webservices.EjbWebServiceServlet.service(EjbWebServiceServlet.java:114)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
    at com.sun.grizzly.http.servlet.ServletAdapter$FilterChainImpl.doFilter(ServletAdapter.java:1002)
    ... 20 more
显然,所需文件位于错误的jar“sunjavaee-engine.jar”中

上面,“sunjavaee引擎.jar”是由“javaee服务引擎模块”加载的。一旦我删除了该模块(使用glassfish更新工具),一切都开始正常工作

编辑#1: 以下是如何使用Unix命令行上的更新工具删除模块:

sudo ./pkg uninstall sun-javaee-engine

具有讽刺意味的是,每个人(包括我)都抱怨Axis,但这个应用程序与Axis完美配合:)
sudo ./pkg uninstall sun-javaee-engine