Wso2 答复OneEvent时消息交换中的空输出消息

Wso2 答复OneEvent时消息交换中的空输出消息,wso2,bpel,apache-ode,Wso2,Bpel,Apache Ode,我有以下简单的bpel流程: 接收订单请求 对订单请求的回复(相关集已实例化-订单id) 内有事件处理程序的作用域。目前定义了一个单一事件(取消订单),我会向客户端发送回复。有一个关联集(订单id),该关联集与实例化的关联集相匹配。问题是,在我回复OneEvent ODE后,它说消息交换中没有输出消息 以下是OneEvent代码(已删除分配): 我检查了控制流是否到达应答。确实如此,并且在退出“Cancel Event Scope”作用域后引发错误。在我看来,响应消息似乎有问题,因为集成层报告响

我有以下简单的bpel流程:

  • 接收订单请求
  • 对订单请求的回复(相关集已实例化-订单id)
  • 内有事件处理程序的作用域。目前定义了一个单一事件(取消订单),我会向客户端发送回复。
    有一个关联集(订单id),该关联集与实例化的关联集相匹配。问题是,在我回复OneEvent ODE后,它说消息交换中没有输出消息
  • 以下是OneEvent代码(已删除分配):


    我检查了控制流是否到达应答。确实如此,并且在退出“Cancel Event Scope”作用域后引发错误。在我看来,响应消息似乎有问题,因为集成层报告响应为null。但这不是ODE代码,而是WSO BPS代码,所以我会直接联系这些人,或者等到他们回答。不,肯定不是空的。我甚至得到了几次正确的答案,但很少!这似乎是一个并发错误。谢谢你的建议。让我试试这个,然后再给你回复。我想知道哪个数据库用于存储bpel数据
    <bpel:scope>
            <bpel:eventHandlers>
                <bpel:onEvent partnerLink="orderPlacementPL" operation="cancelOrder"
                              messageType="tns:cancelOrderReqMessage"
                              portType="tns:orderPlacementPT" variable="Input_CancelClientOrder"
                              messageExchange="CancelMex">
                    <bpel:correlations>
                        <bpel:correlation set="OrderId_CS" initiate="no"/>
                    </bpel:correlations>
                    <bpel:scope name="Cancel Event Scope">
                        <bpel:sequence>
                            <bpel:assign name="Initialize client reply message">....</bpel:assign>
                            <bpel:reply partnerLink="orderPlacementPL" operation="cancelOrder"
                                        variable="Output_CancelClientOrder"
                                        portType="tns:orderPlacementPT"
                                        name="Send Reply for Cancel Operation"
                                        messageExchange="CancelMex"/>
                        </bpel:sequence>
                    </bpel:scope>
                </bpel:onEvent>
            </bpel:eventHandlers>
    
            <bpel:sequence name="Event Loop - wait 2 min">
                <bpel:wait>
                    <bpel:for>'PT2M'</bpel:for>
                </bpel:wait>
            </bpel:sequence>
        </bpel:scope>
    
    ERROR -  Error processing response for MEX {MyRoleMex#hqejbhcnphr7dn78tn3hgb [Client hqejbhcnphr7dn78tn3hga] calling {http://orders}OrderPlacementService.cancelOrder(...)} {org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy}
    java.lang.NullPointerException: Null message.
    at org.wso2.carbon.bpel.core.ode.integration.utils.SOAPUtils.checkForNullValuesInResponse(SOAPUtils.java:397)
    at org.wso2.carbon.bpel.core.ode.integration.utils.SOAPUtils.createSOAPResponse(SOAPUtils.java:70)
    at org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy.onResponse(BPELProcessProxy.java:410)
    at org.wso2.carbon.bpel.core.ode.integration.BPELProcessProxy.onAxisServiceInvoke(BPELProcessProxy.java:189)
    at org.wso2.carbon.bpel.core.ode.integration.axis2.receivers.BPELMessageReceiver.handleInOutOperation(BPELMessageReceiver.java:100)
    at org.wso2.carbon.bpel.core.ode.integration.axis2.receivers.BPELMessageReceiver.invokeBusinessLogic(BPELMessageReceiver.java:73)
    at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
    at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
    at org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:199)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.wso2.carbon.bridge.BridgeServlet.service(BridgeServlet.java:164)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.wso2.carbon.server.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:154)
    at org.wso2.carbon.server.TomcatServer$1.invoke(TomcatServer.java:254)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
    at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:396)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:356)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1534)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)