使用仅输入 Web 服务时出错(OUT_ONLY 来自 ESB)
Errors using input-only web service (OUT_ONLY from ESB)
我有一个带有一些仅输入操作的网络服务。在 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.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
谢谢,
丹尼
如果 OUT_ONLY=true 并且您的后端将响应发送回 esb.if OUT_ONLY 设置为 true,则会发生此异常,您正在从后端获得响应然后它不是 if OUT_ONLY property.check this post[1]
的有效场景
1.https://mohanadarshan.wordpress.com/2013/05/05/out_only-scenario-in-proxy-service-wso2-esb/
Out-only 属性 设置为通知此服务没有 return 响应。例如,如果您要向消息代理发送消息。 Force-sc-accepted 标志导致 ESB 将 HTTP Accepted 状态响应发送回客户端(调用 ESB),否则客户端将在没有响应的情况下超时。所以请确保您的后端服务没有发送响应并且它可以被 ESB 访问。
暂时解决了这个问题:我的 ESB 运行 处于多租户模式。代理服务是在租户中创建的。我进行了全新安装并将配置放入(因此没有租户)。错误立即消失。当我删除配置并创建租户并将配置放入租户时,错误再次出现。所以这可能是一个错误。我可以尝试在租户中使用 运行 示例 253 (OneWayProxy) 进行验证。
我有一个带有一些仅输入操作的网络服务。在 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.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
谢谢,
丹尼
如果 OUT_ONLY=true 并且您的后端将响应发送回 esb.if OUT_ONLY 设置为 true,则会发生此异常,您正在从后端获得响应然后它不是 if OUT_ONLY property.check this post[1]
的有效场景1.https://mohanadarshan.wordpress.com/2013/05/05/out_only-scenario-in-proxy-service-wso2-esb/
Out-only 属性 设置为通知此服务没有 return 响应。例如,如果您要向消息代理发送消息。 Force-sc-accepted 标志导致 ESB 将 HTTP Accepted 状态响应发送回客户端(调用 ESB),否则客户端将在没有响应的情况下超时。所以请确保您的后端服务没有发送响应并且它可以被 ESB 访问。
暂时解决了这个问题:我的 ESB 运行 处于多租户模式。代理服务是在租户中创建的。我进行了全新安装并将配置放入(因此没有租户)。错误立即消失。当我删除配置并创建租户并将配置放入租户时,错误再次出现。所以这可能是一个错误。我可以尝试在租户中使用 运行 示例 253 (OneWayProxy) 进行验证。