2016-05-13 50 views
1

我試圖訪問我在WSO2數據服務服務器3.2.2中創建的服務。使用WSO2 Enterprise Service Bus 4.9.0。我生成了源代碼以訪問服務操作,然後使用WSO2 Developer Studio中的Mediator Project創建了一個類中介。首先,調解員只需調用一個操作並打印獲得的響應。當我通過java應用程序訪問端點時,它可以工作,但是當我將相同的邏輯放入介體並將其加載到ESB中時,我收到以下錯誤:使用調解器項目從WSO2 ESB訪問WSO2 DSS服務,但它不起作用

[2016-05-12 11:22:54,632 ]錯誤 - NativeWorkerPool未捕獲異常 javax.xml.ws.spi.FactoryFinder $ ConfigurationError:提供程序org.apache.cxf.jaxws.spi.ProviderImpl未找到 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) 在mediators.DSSMediator.mediate(DSSMediator.java:22) 在org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:78) 的組織。 apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.jav a: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) 在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615) 在java.lang.Thread.run(Thread.java:745)

+0

您是否將類調解器和所有其他必需的jar複製到$ ESB_HOME/repository/components/lib目錄中。 –

回答

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

0

謝謝您的答覆。 在我們的用例中使用類中介的想法是在服務的編排中注入業務邏輯(操作)。具體而言,我們可以捕獲從一個DSS數據服務返回的數據,處理它們(使用某些計算),並將結果放入相同的服務流。