0

我有以下简单的 bpel 过程:

  1. 接收订单请求
  2. 回复订单请求(实例化相关集 - 订单 ID)
  3. 范围内带有事件处理程序。目前定义了一个事件(取消订单),我向其发送回复给客户。<onEvent>有一个相关集(再次是订单 ID),它与实例化的集相匹配。问题是在我回复 onEvent 之后,ODE 说消息交换中没有输出消息。

这是 onEvent 代码(已删除分配):

<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)
4

0 回答 0