Package org.apache.ode.bpel.iapi

Examples of org.apache.ode.bpel.iapi.Message


                        odeMsgEl.appendChild(partEl);
                        // import the response body
                        partEl.appendChild(odeMsgEl.getOwnerDocument().importNode(bodyEl, true));

                        QName faultType = new QName(targetNamespace, faultDef.getName());
                        Message response = odeMex.createMessage(faultType);
                        response.setMessage(odeMsgEl);

                        // extract and set headers
                         httpMethodConverter.extractHttpResponseHeaders(response, method, faultDef.getMessage(), opBinding.getBindingOutput());

                        // finally send the fault. We did it!
View Full Code Here


                    String errmsg = "Response body is mandatory but missing! Msg Id=" + odeMex.getMessageExchangeId();
                    log.error(errmsg);
                    odeMex.replyWithFailure(MessageExchange.FailureType.OTHER, errmsg, null);
                } else {
                    javax.wsdl.Message outputMessage = odeMex.getOperation().getOutput().getMessage();
                    Message odeResponse = odeMex.createMessage(outputMessage.getQName());

                    // handle the body if any
                    if (bodyAsStream != null) {
                        // only text/xml is supported in the response body
                        try {
                            Element bodyElement = DOMUtils.parse(bodyAsStream).getDocumentElement();
                            // we expect a single part per output message
                            // see org.apache.ode.axis2.httpbinding.HttpBindingValidator call in constructor
                            Part part = (Part) outputMessage.getParts().values().iterator().next();
                            Element partElement = httpMethodConverter.createPartElement(part, bodyElement);
                            odeResponse.setPart(part.getName(), partElement);
                        } catch (Exception e) {
                            String errmsg = "Unable to parse the response body: " + e.getMessage();
                            log.error(errmsg, e);
                            odeMex.replyWithFailure(MessageExchange.FailureType.FORMAT_ERROR, errmsg, null);
                            return;
                        }
                    }

                    // handle headers
                    httpMethodConverter.extractHttpResponseHeaders(odeResponse, method, outputMessage, opBinding.getBindingOutput());
                   
                    try {

                        if (log.isInfoEnabled())
                            log.info("Response:\n" + DOMUtils.domToString(odeResponse.getMessage()));
                        odeMex.reply(odeResponse);
                    } catch (Exception ex) {
                        String errmsg = "Unable to process response: " + ex.getMessage();
                        log.error(errmsg, ex);
                        odeMex.replyWithFailure(MessageExchange.FailureType.OTHER, errmsg, HttpClientHelper.prepareDetailsElement(method));
View Full Code Here

                    jbiMex.getOperation().getLocalPart());

            if (odeMex.getOperation() != null) {
                copyMexProperties(odeMex, jbiMex);
                javax.wsdl.Message msgdef = odeMex.getOperation().getInput().getMessage();
                Message odeRequest = odeMex.createMessage(odeMex.getOperation().getInput().getMessage().getQName());
                Mapper mapper = _ode.findMapper(request, odeMex.getOperation());
                if (mapper == null) {
                    String errmsg = "Could not find a mapper for request message for JBI MEX " + jbiMex.getExchangeId()
                            + "; ODE MEX " + odeMex.getMessageExchangeId() + " is failed. ";
                    __log.error(errmsg);
View Full Code Here

                                javax.wsdl.Fault wsdlFlt = mapper.toFaultType(jbiFlt, (Collection<javax.wsdl.Fault>) pmex.getOperation().getFaults().values());
                                if (wsdlFlt == null) {
                                    pmex.replyWithFailure(FailureType.FORMAT_ERROR, "Unrecognized fault message.", null);
                                } else {
                                    if (wsdlFlt.getMessage() != null) {
                                        Message faultResponse = pmex.createMessage(wsdlFlt.getMessage().getQName());
                                        mapper.toODE(faultResponse, jbiFlt, wsdlFlt.getMessage());
                                        pmex.replyWithFault(new QName(pmex.getPortType().getQName().getNamespaceURI(), wsdlFlt
                                                .getName()), faultResponse);
                                    } else {
                                        // Can this even happen?
                                        __log.fatal("Internal Error: fault found without a message type: " + wsdlFlt);
                                        pmex.replyWithFailure(FailureType.FORMAT_ERROR, "Fault has no message: "
                                                + wsdlFlt.getName(), null);
                                    }
                                }
                            } else {
                                Message response = pmex.createMessage(pmex.getOperation().getOutput().getMessage().getQName());
                                mapper.toODE(response, jbiMex.getOutMessage(), pmex.getOperation().getOutput().getMessage());
                                pmex.reply(response);
                            }
                        } catch (MessageTranslationException mte) {
                            __log.error("Error translating message.", mte);
View Full Code Here

                    case FAILURE:
                        // We can't seem to get the failure out of the myrole mex?
                        pmex.replyWithFailure(MessageExchange.FailureType.OTHER, "operation failed", null);
                        break;
                    case FAULT:
                        Message faultRes = pmex.createMessage(pmex.getOperation().getFault(m.getFault().getLocalPart())
                                .getMessage().getQName());
                        faultRes.setMessage(m.getResponse().getMessage());
                        pmex.replyWithFault(m.getFault(), faultRes);
                        break;
                    case RESPONSE:
                        Message response = pmex.createMessage(pmex.getOperation().getOutput().getMessage().getQName());
                        response.setMessage(m.getResponse().getMessage());
                        pmex.reply(response);
                        break;
                    default:
                        __log.warn("Unexpected state: " + m.getStatus());
                        break;
View Full Code Here

            if (BpelProcess.__log.isDebugEnabled()) {
                __log.debug("Invoking in a p2p interaction, partnerrole " + mex + " - myrole " + myRoleMex);
            }

            Message odeRequest = myRoleMex.createMessage(operation.getInput().getMessage().getQName());
            odeRequest.setMessage(outgoingMessage);
            ((MessageImpl)odeRequest)._dao.setHeader(message.getHeader());

            if (BpelProcess.__log.isDebugEnabled()) {
                __log.debug("Setting myRoleMex session ids for p2p interaction, mySession "
                        + partnerSessionId + " - partnerSess " + mySessionId);
View Full Code Here

            MessageExchangeDAO mexDao = _dao.getConnection().getMessageExchange(mexId);
            if (mexDao != null) {
                MyRoleMessageExchangeImpl mex = new MyRoleMessageExchangeImpl(_bpelProcess._engine, mexDao);
                _bpelProcess.initMyRoleMex(mex);

                Message message = mex.createMessage(faultData.getFaultName());
                if (faultData.getFaultMessage() != null)
                    message.setMessage(faultData.getFaultMessage());
                mex.setResponse(message);

                mex.setFault(faultData.getFaultName(), message);
                mex.setFaultExplanation(faultData.getExplanation());
                _bpelProcess._engine._contexts.mexContext.onAsyncReply(mex);
View Full Code Here

    }
    myRoleMex.complete();
  }
 
  private void invokeProbeService(PartnerRoleMessageExchange prmx) {
    Message msg = prmx.getRequest();
    Element elm1 = prmx.getRequest().getPart("probeName");
    Element elm2 = prmx.getRequest().getPart("probeData");
   
    if ( elm1 != null && elm2 != null ) {
      String cat = elm2.getTextContent()+" -> "+elm1.getTextContent();
      elm2.setTextContent(cat);
      msg.setPart("probeData", elm2);
            final Message response = prmx.createMessage(prmx.getOperation().getOutput().getMessage().getQName());

            response.setMessage(msg.getMessage());
      prmx.reply(response);
    }
  }
View Full Code Here

  }
 
  private void invokeFaultService(PartnerRoleMessageExchange prmx) {
    QName errorMsgType = new QName(FAULT_NS,"errorMessage");
    QName responseMsgType = new QName(FAULT_NS,"faultMessage");
    Message faultMsg = prmx.createMessage(errorMsgType);
    Message responseMsg = prmx.createMessage(responseMsgType);

    String ind1 = prmx.getRequest().getPart("faultIndicator1").getTextContent();
    String ind2 = prmx.getRequest().getPart("faultIndicator2").getTextContent();
    String inputData = prmx.getRequest().getPart("faultData").getTextContent();
   
    StringBuffer faultData = new StringBuffer("<message><errorID>FA-1</errorID><errorText>");
    faultData.append(inputData);
    faultData.append("</errorText></message>");
   
    StringBuffer responseData = new StringBuffer("<message><faultName>FA-NoFault</faultName><faultData>");
    responseData.append(inputData);
    responseData.append("</faultData></message>");
   
   
    Element faultResponse = null;
    Element response = null;
    try {
      faultResponse = DOMUtils.stringToDOM(faultData.toString());
      response = DOMUtils.stringToDOM(responseData.toString());
    } catch (SAXException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
   
   
    // TODO: Question - how does one set parts that are of a simple xsd type?
    faultMsg.setMessage(faultResponse);
    responseMsg.setMessage(response);
   
    if ( ind1.equals("yes")){
      prmx.replyWithFault(new QName(FAULT_NS,"FaultMessage1"), faultMsg);
    } else {
      if ( ind2.equals("yes")){
View Full Code Here

                            if (__log.isDebugEnabled()) __log.debug("Reply is a fault, found type: " + faultType);

                            if (faultType != null) {
                                if (__log.isWarnEnabled())
                                    __log.warn("Fault response: faultType=" + faultType + "\n" + DOMUtils.domToString(odeMsgEl));
                                Message response = odeMex.createMessage(faultType);
                                response.setMessage(odeMsgEl);

                                odeMex.replyWithFault(faultType, response);
                            } else {
                                if (__log.isWarnEnabled())
                                    __log.warn("Fault response: faultType=(unkown)\n" + reply.getEnvelope().toString());
                                odeMex.replyWithFailure(FailureType.OTHER, reply.getEnvelope().getBody()
                                        .getFault().getText(), OMUtils.toDOM(reply.getEnvelope().getBody()));
                            }
                        } else {
                            Message response = odeMex.createMessage(odeMex.getOperation().getOutput().getMessage().getQName());
                            _converter.parseSoapResponse(response, reply.getEnvelope(), operation);
                            if (__log.isInfoEnabled()) __log.info("Response:\n" + (response.getMessage() != null ?
                                    DOMUtils.domToString(response.getMessage()) : "empty"));
                            odeMex.reply(response);
                        }
                    } catch (Exception ex) {
                        String errmsg = "Unable to process response: " + ex.getMessage();
                        __log.error(errmsg, ex);
View Full Code Here

TOP

Related Classes of org.apache.ode.bpel.iapi.Message

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.