我正在尝试访问我在WSO2 Data Service Server 3.2.2中创建的服务。使用WSO2企业服务总线4.9.0。我生成了源代码来访问服务操作,然后使用WSO2 Developer Studio中的Mediator Project创建了一个类中介。首先,介体只需调用一个操作并打印获得的响应。当我通过java应用程序访问端点时,它可以工作,但是当我在调解器中放入相同的逻辑并将其加载到ESB中时,我收到以下错误:
[2016-05-12 11:22:54,632]错误 - 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.myDSSDataService。(myDSSDataService.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) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:149) at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:185) 在org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:317) at 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) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615) 在java.lang.Thread.run(Thread.java:745)
答案 0 :(得分:1)
首先,从DSS获取数据并通过ESB公开它不需要类中介。通常我们使用类中介来扩展ESB。您能告诉我们班级调解员和您的用例的目的吗?你可以参考blogpost [1]来完成这件事。另请检查您是否已将数据库驱动程序复制到$ DSS_HOME / repository / components / lib目录中。
[1] http://dakshithar.blogspot.com/2014/05/entity-aggregation-with-wso2-esb-and_14.html
答案 1 :(得分:0)
感谢您的回复。 在我们的用例中使用类中介的想法是在服务中间注入业务逻辑(操作)。编排。具体来说,我们可以捕获从一个DSS数据服务返回的数据,处理它们(使用某些计算),然后将结果放入同一个服务流中。