作为外部Web服务客户端的OSGi捆绑包

作为外部Web服务客户端的OSGi捆绑包,osgi,jax-ws,cxf,apache-felix,dosgi,Osgi,Jax Ws,Cxf,Apache Felix,Dosgi,我需要从部署在apachefelix容器中的包中调用外部webservice(我不能使用ServiceMix、fuse…) 我添加了bundlecxf dosgi(可从下载),并在我的pom.xml中添加了以下行: <Require-Bundle>cxf-dosgi-ri-singlebundle-distribution</Require-Bundle> <Import-Packag

我需要从部署在apachefelix容器中的包中调用外部webservice(我不能使用ServiceMix、fuse…) 我添加了bundlecxf dosgi(可从下载),并在我的pom.xml中添加了以下行:

                    <Require-Bundle>cxf-dosgi-ri-singlebundle-distribution</Require-Bundle>
                     <Import-Package>
                        javax.jws,
                        javax.xml.bind,
                        javax.xml.bind.annotation,
                        javax.xml.namespace,
                        javax.xml.ws,
                        META-INF.cxf,
                        org.apache.cxf,
                        org.apache.cxf.binding,
                        org.apache.cxf.binding.soap,
                        org.apache.cxf.binding.soap.spring,
                        org.apache.cxf.bus,
                        org.apache.cxf.bus.resource,
                        org.apache.cxf.bus.spring,
                        org.apache.cxf.buslifecycle,
                        org.apache.cxf.catalog,
                        org.apache.cxf.configuration,
                        org.apache.cxf.configuration.spring,
                        org.apache.cxf.endpoint,
                        org.apache.cxf.headers,
                        org.apache.cxf.management,
                        org.apache.cxf.phase,
                        org.apache.cxf.resource,
                        org.apache.cxf.transport,
                        org.apache.cxf.transport.http,
                        org.apache.cxf.transport.http.policy,
                        org.apache.cxf.transport.http_jetty,
                        org.apache.cxf.transports.http,
                        org.apache.cxf.workqueue,
                        org.apache.cxf.ws.policy.builder.jaxb,
                        org.apache.cxf.wsdl,
                        org.apache.cxf.wsdl11,
                        org.apache.cxf.jaxws.*,
                        *
                    </Import-Package>
运行该示例时,出现以下异常:

 Caused by: javax.xml.ws.spi.FactoryFinder$ConfigurationError: Provider org.apache.axis2.jaxws.spi.Provider not found
        at javax.xml.ws.spi.FactoryFinder$2.run(FactoryFinder.java:138)
        at javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:282)
        at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:125)
        at javax.xml.ws.spi.FactoryFinder.access$200(FactoryFinder.java:42)
        at javax.xml.ws.spi.FactoryFinder$3.run(FactoryFinder.java:273)
        at javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:282)
        at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:168)
        at javax.xml.ws.spi.Provider.provider(Provider.java:39)
        at javax.xml.ws.Service.<init>(Service.java:36)
        at javax.xml.ws.Service.create(Service.java:116)
原因:javax.xml.ws.spi.FactoryFinder$ConfigurationError:Provider org.apache.axis2.jaxws.spi.Provider未找到
位于javax.xml.ws.spi.FactoryFinder$2.run(FactoryFinder.java:138)
位于javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:282)
位于javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:125)
javax.xml.ws.spi.FactoryFinder.access$200(FactoryFinder.java:42)
位于javax.xml.ws.spi.FactoryFinder$3.run(FactoryFinder.java:273)
位于javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:282)
位于javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:168)
位于javax.xml.ws.spi.Provider.Provider(Provider.java:39)
位于javax.xml.ws.Service。(Service.java:36)
位于javax.xml.ws.Service.create(Service.java:116)

有什么想法吗?

ApacheDosgi设计用于将服务公开为Web服务,而不是调用其他Web服务。不过,它可能包含一些api来调用其他Web服务。

以某种方式使用了axis jaxws实现。类路径上可能有一个axis2-jaxws-xxx.jar。尝试移除它。将改用JRA jaxws(这对axis很好,对cxf更好)。

谢谢您的回答。在这种情况下,我应该怎么做?有没有一种调用外部Web服务的解决方案?肯定有其他选择。正如您从我的回答“更正”中看到的,dosgi可能包含一些可用于调用其他web服务的代码。
 Caused by: javax.xml.ws.spi.FactoryFinder$ConfigurationError: Provider org.apache.axis2.jaxws.spi.Provider not found
        at javax.xml.ws.spi.FactoryFinder$2.run(FactoryFinder.java:138)
        at javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:282)
        at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:125)
        at javax.xml.ws.spi.FactoryFinder.access$200(FactoryFinder.java:42)
        at javax.xml.ws.spi.FactoryFinder$3.run(FactoryFinder.java:273)
        at javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:282)
        at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:168)
        at javax.xml.ws.spi.Provider.provider(Provider.java:39)
        at javax.xml.ws.Service.<init>(Service.java:36)
        at javax.xml.ws.Service.create(Service.java:116)