Web services 使用中介项目从WSO2 ESB访问WSO2 DSS服务,但它不起作用

Web services 使用中介项目从WSO2 ESB访问WSO2 DSS服务,但它不起作用,web-services,wso2,wso2esb,wso2dss,Web Services,Wso2,Wso2esb,Wso2dss,我正在尝试访问我在WSO2数据服务服务器3.2.2中创建的服务。使用WSO2企业服务总线4.9.0。我生成了访问服务操作的源代码,然后使用WSO2 Developer Studio中的中介项目创建了一个类中介。首先,中介只需调用一个操作并打印获得的响应。当我通过java应用程序访问端点时,它可以工作,但当我将相同的逻辑放入中介并将其加载到ESB中时,我收到以下错误: [2016-05-12 11:22:54632]错误-NativeWorkerPool未捕获异常 javax.xml.ws.spi

我正在尝试访问我在WSO2数据服务服务器3.2.2中创建的服务。使用WSO2企业服务总线4.9.0。我生成了访问服务操作的源代码,然后使用WSO2 Developer Studio中的中介项目创建了一个类中介。首先,中介只需调用一个操作并打印获得的响应。当我通过java应用程序访问端点时,它可以工作,但当我将相同的逻辑放入中介并将其加载到ESB中时,我收到以下错误:

[2016-05-12 11:22:54632]错误-NativeWorkerPool未捕获异常 javax.xml.ws.spi.FactoryFinder$ConfigurationError:找不到提供程序org.apache.cxf.jaxws.spi.ProviderImpl 位于javax.xml.ws.spi.FactoryFinder$2.run(FactoryFinder.java:130) 位于javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:220) 位于javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:124) javax.xml.ws.spi.FactoryFinder.access$200(FactoryFinder.java:44) 位于javax.xml.ws.spi.FactoryFinder$3.run(FactoryFinder.java:211) 位于javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:220) 位于javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:160) 位于javax.xml.ws.spi.Provider.Provider(Provider.java:43) 位于javax.xml.ws.Service。(Service.java:35) 位于org.wso2.ws.dataservice.mydssdsdasdataservice(mydssdaservice.java:42) 位于mediators.DSSMediator.getVolume(DSSMediator.java:12) 位于mediators.DSSMediator.mediate(DSSMediator.java:22) 位于org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:78) 位于org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81) 位于org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48) 位于org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149) 位于org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185) 在org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)上 位于org.apache.synapse.transport.passthru.ServerWorker.ProcessNonEntityEnclosuringReshandler(ServerWorker.java:317) 位于org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:363) 位于org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142) 位于org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
在java.lang.Thread.run(Thread.java:745)

首先,从DSS获取数据并通过ESB公开它不需要类中介。通常我们使用类中介来扩展ESB。你能告诉我们类中介的目的和你的用例吗。你可以参考blogpost[1]来完成这件事。另外,请检查是否已将数据库驱动程序复制到$DSS_HOME/repository/components/lib目录中


[1] 谢谢您的回复。
在我们的用例中使用类中介器的想法是将业务逻辑(操作)注入服务的业务流程中间。具体来说,我们可以捕获从一个DSS数据服务返回的数据,对其进行处理(使用某些计算),并将结果放入同一服务流。

您是否将类中介器和所有其他必要的JAR复制到$ESB_HOME/repository/components/lib目录中。