2

Endpoint.publishのバンドルから呼び出すにはどうすればよいservicemixですか?

内で起動wsdl2javaする を作成するために使用しました:implBundleActivator

LOG.info("WSBundle registering using endpoint...");
endpointAddress = substituteParameters(endpointAddress, ref);
Endpoint endpoint = Endpoint.publish(endpointAddress, service);
myEndpoints.put(service, endpoint);
LOG.info("WSBundle registered server at: "+endpointAddress);

これは Eclipse IDE 内では正常に機能しますが、サービス ミックス デプロイ エリア内でバンドルを実行すると失敗します。最初の失敗は、次のパッケージのいくつかのクラスが欠落していたことが原因でした:

javax.xml.ws,
javax.xml.ws.spi,
org.apache.cxf.endpoint,
org.apache.cxf.frontend,
org.apache.cxf.jaxws,
org.apache.cxf.jaxws.spi,

これらをインポートされたパッケージとしてマニフェストに追加した後、次のエラーが発生します。

ERROR: Bundle WSExposer [187] EventDispatcher: Error during dispatch. (javax.xml.ws.spi.FactoryFinder$ConfigurationError: Provider org.apache.cxf.jaxws.spi.ProviderImpl not found)
javax.xml.ws.spi.FactoryFinder$ConfigurationError: Provider org.apache.cxf.jaxws.spi.ProviderImpl not found
    at javax.xml.ws.spi.FactoryFinder$2.run(FactoryFinder.java:133)
    at javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:238)
    at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:127)
    at javax.xml.ws.spi.FactoryFinder.access$200(FactoryFinder.java:44)
    at javax.xml.ws.spi.FactoryFinder$3.run(FactoryFinder.java:229)
    at javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:238)
    at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:163)
    at javax.xml.ws.spi.Provider.provider(Provider.java:43)
    at javax.xml.ws.Endpoint.publish(Endpoint.java:57)

私のマニフェストファイルは次のとおりです。

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: WSBundle
Bundle-SymbolicName: WSBundle
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: com.company.soa.wsbundle.WSExposerActivator
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Import-Package: com.company.product.history.filtertypes.v1,
com.company.product.system.basetypes.v1,
com.company.svc.product.event.v1,
com.company.svc.product.service.event.v1,
com.company.svc.product.service.faults.v1,
javax.xml.ws,
javax.xml.ws.spi,
org.apache.cxf.endpoint,
org.apache.cxf.frontend,
org.apache.cxf.jaxws,
org.apache.cxf.jaxws.spi,
org.osgi.framework
Export-Package: com.company.soa.wsbundle
4

1 に答える 1

0

問題を解決した Equinox フレームワークを使用するようにサービス ミックスを切り替えることができることがわかりました。etc/config.properties で、karaf.framework を eclipse に変更します: karaf.framework=equinox

于 2013-08-06T14:46:05.280 に答える