使用仅输入Web服务的错误(来自ESB的OUT_ONLY)

时间:2015-04-02 08:01:05

标签: wso2 wso2esb

我有一个只有一些输入操作的web服务。在ESB中,我创建了一个代理并将属性OUT_ONLY and FORCE_SC_ACCEPTED设置为true。每次我调用代理操作时,我都会在wso2carbon.log中收到以下错误消息:

TID: [0] [ESB] [2015-04-02 09:52:45,307] ERROR {org.apache.axis2.transport.base.threads.NativeWorkerPool} -  Uncaught exception {org.apache.axis2.transport.base.threads.NativeWorkerPool}
java.lang.UnsupportedOperationException: Not yet implemented
    at org.apache.axis2.description.OutOnlyAxisOperation.getMessage(OutOnlyAxisOperation.java:124)
    at org.wso2.carbon.core.multitenancy.MultitenantMessageReceiver.processResponse(MultitenantMessageReceiver.java:125)
    at org.wso2.carbon.core.multitenancy.MultitenantMessageReceiver.receive(MultitenantMessageReceiver.java:81)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
    at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:225)
    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(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

虽然一切似乎都运转正常,但我担心这个消息。我究竟做错了什么。这些输入只会在生产中非常频繁地调用,所以我希望它们没有错误。

WSO2 ESB: 4.8.1

谢谢,

丹尼

3 个答案:

答案 0 :(得分:0)

如果OUT_ONLY = true并且你的后端向esb.if OUT_ONLY发送响应设置为true,则会发生此异常,您将从后端获得响应然后它不是OUT_ONLY属性的有效情况。检查此交的[1]

1。https://mohanadarshan.wordpress.com/2013/05/05/out_only-scenario-in-proxy-service-wso2-esb/

答案 1 :(得分:0)

设置Out-only属性以通知此服务不返回响应。例如,如果您要向消息代理发送消息。 Force-sc-accepted标志导致ESB将HTTP Accepted状态响应发送回客户端(调用ESB),否则客户端将在没有reaponse的情况下超时。因此,请确保您的后端服务不会发送响应,ESB可以访问它。

答案 2 :(得分:0)

现在解决了这个问题:我的ESB在多租户模式下运行。代理服务是在租户中创建的。我做了一个全新的安装,并把配置(所以没有租户)。错误立即消失。当我删除配置并创建租户并将配置放入租户时,错误再次出现。这可能是一个错误。我可以尝试通过在租户中运行样本253(OneWayProxy)进行验证。