NormalizedMessage out = exchange.createMessage(); soapHelper.getJBIMarshaler().toNMS(out, soap); ((InOut) exchange).setOutMessage(out);
private void outResponse(MyRoleMessageExchange mex, javax.jbi.messaging.MessageExchange jbiMex) throws MessagingException { InOut inout = (InOut) jbiMex; try { NormalizedMessage nmsg = inout.createMessage(); String mapperName = mex.getProperty(Mapper.class.getName()); Mapper mapper = _ode.getMapper(mapperName); if (mapper == null) { String errmsg = "Message-mapper " + mapperName + " used in ODE MEX " + mex.getMessageExchangeId() + " is no longer available."; __log.error(errmsg); throw new MessageTranslationException(errmsg); } mapper.toNMS(nmsg, mex.getResponse(), mex.getOperation().getOutput().getMessage(), null); inout.setOutMessage(nmsg); } catch (MessageTranslationException e) { __log.error("Error translating ODE message " + mex.getResponse() + " to NMS format!", e); setError(jbiMex, e); } }
NormalizedMessage msg = exchange.createMessage(); soapHelper.getJBIMarshaler().toNMS(msg, soap); ((InOut) exchange).setOutMessage(msg);
try { NormalizedMessage response = invoke(mex); mex.setOutMessage(response); _channel.send(jbiMex); success = true;
private boolean processInOut(MessageExchange exchange, PostMethod method, Context context, boolean txSync, boolean close) throws Exception { NormalizedMessage msg = exchange.createMessage(); SoapReader reader = soapHelper.getSoapMarshaler().createReader(); Header contentType = method.getResponseHeader(HEADER_CONTENT_TYPE); SoapMessage soapMessage = reader.read(method.getResponseBodyAsStream(), contentType != null ? contentType.getValue() : null); context.setOutMessage(soapMessage); soapHelper.onAnswer(context); if (getConfiguration().isWantHeadersFromHttpIntoExchange()) { msg.setProperty(JbiConstants.PROTOCOL_HEADERS, getHeaders(method)); } soapHelper.getJBIMarshaler().toNMS(msg, soapMessage); ((InOut) exchange).setOutMessage(msg); if (txSync) { channel.sendSync(exchange); } else { methods.put(exchange.getExchangeId(), method); channel.send(exchange); close = false; } return close; }