【问题标题】:access to a WSO2 DSS service from WSO2 ESB using a Mediator Project, but it does not work使用调解器项目从 WSO2 ESB 访问 WSO2 DSS 服务,但它不起作用
【发布时间】:2016-05-15 01:27:06
【问题描述】:

我正在尝试访问我在 WSO2 数据服务服务器 3.2.2 中创建的服务。使用 WSO2 企业服务总线 4.9.0。我生成了访问服务操作的源代码,然后使用 WSO2 Developer Studio 中的调解器项目创建了一个类调解器。首先,中介简单地调用一个操作并打印获得的响应。当我通过 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) 在 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.processNonEntityEnclosingRESTHandler(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)

【问题讨论】:

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

标签: web-services wso2 wso2esb wso2dss


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    感谢您的回复。 在我们的用例中使用类中介的想法是在服务编排的中间注入业务逻辑(操作)。具体来说,我们可以捕获从一个 DSS 数据服务返回的数据,处理它们(使用某些计算),然后它们将结果放入同一个服务流中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多