简体   繁体   English

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

[英]access to a WSO2 DSS service from WSO2 ESB using a Mediator Project, but it does not work

I am trying to access a service that I created in WSO2 Data Service Server 3.2.2.我正在尝试访问我在 WSO2 数据服务服务器 3.2.2 中创建的服务。 using the WSO2 Enterprise Service Bus 4.9.0.使用 WSO2 企业服务总线 4.9.0。 I generated the source code to access the service operations, and then created a class mediator using a Mediator Project in the WSO2 Developer Studio.我生成了访问服务操作的源代码,然后使用 WSO2 Developer Studio 中的中介项目创建了一个类中介。 First, the mediator simply calls an operation and print the obtained response.首先,中介者简单地调用一个操作并打印获得的响应。 When I access the endpoint through a java application, it works, but when I put the same logic inside the mediator and load it in ESB, I receive the following error:当我通过 java 应用程序访问端点时,它可以工作,但是当我将相同的逻辑放入中介器并将其加载到 ESB 中时,我收到以下错误:

[2016-05-12 11:22:54,632] ERROR - NativeWorkerPool Uncaught exception 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:130) at javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:220) at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:124) at javax.xml.ws.spi.FactoryFinder.access$200(FactoryFinder.java:44) at javax.xml.ws.spi.FactoryFinder$3.run(FactoryFinder.java:211) at javax.xml.ws.spi.FactoryFinder.doPrivileged(FactoryFinder.java:220) at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:160) at javax.xml.ws.spi.Provider.provider(Provider.java:43) at javax.xml.ws.Service.(Service.java:35) at org.wso2.ws.dataservice.myDSSDataService.(myDSSDataService.java:42) at mediators.DSSMediator.getVolume(DSSMediator.java:12) at mediators.DSSMediator.mediate(DSSMediator.java:22) at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator. [2016-05-12 11:22:54,632] 错误 - NativeWorkerPool 未捕获异常 javax.xml.ws.spi.FactoryFinder$ConfigurationError:在 javax.xml.ws 中找不到提供程序 org.apache.cxf.jaxws.spi.ProviderImpl。 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) at org.wso2.ws.dataservice.myDSSDataService.(myDSSDataService.java:42) at mediators.DSSMediator.getVolume(DSSMediator.java:12) at mediators.DSSMediator。在 org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.mediate(ClassMediator. java:78) at 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) at 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) at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:142) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExec 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.processNonEntityEnclosureRESTHandler(ServerWorker.java:317) 在 org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosureRequest(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(ThreadPoolExec utor.java:615) at java.lang.Thread.run(Thread.java:745) utor.java:615) 在 java.lang.Thread.run(Thread.java:745)

First of all to fetch the data from DSS and expose it through ESB does not need a class mediator.首先,从 DSS 获取数据并通过 ESB 公开它不需要类中介器。 Usually we use class mediator to extend the ESB.通常我们使用类中介器来扩展 ESB。 Could you please let us know the purpose of the class mediator and your usecase.您能否让我们知道类调解器的目的和您的用例。 You may refer blogpost [1] to get this thing done.你可以参考博文 [1] 来完成这件事。 Also please check whether you have copied your database driver into the $DSS_HOME/repository/components/lib directory.另请检查您是否已将数据库驱动程序复制到 $DSS_HOME/repository/components/lib 目录中。

[1] http://dakshithar.blogspot.com/2014/05/entity-aggregation-with-wso2-esb-and_14.html [1] http://dakshithar.blogspot.com/2014/05/entity-aggregation-with-wso2-esb-and_14.html

Thank you for your response.谢谢您的答复。 The idea of use the class mediator in our usecase is to inject a business logic(operations) in the middle of the services' orchestration.在我们的用例中使用类中介器的想法是在服务的编排中间注入业务逻辑(操作)。 Specifically, we can capture the data returned from one DSS data service, process them(using certain computations) and them put the result into the same service flow.具体来说,我们可以捕获从一个 DSS 数据服务返回的数据,对其进行处理(使用某些计算),然后将结果放入同一个服务流中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM