回复onEvent时,消息交换中的空输出消息

时间:2012-06-22 09:08:51

标签: wso2 bpel apache-ode

我有以下简单的bpel过程:

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

0 个答案:

没有答案