public static boolean hasFaultMessage(MessageExchange mex) { return mex.getFault() != null; }
public static void transferFaultToFault(MessageExchange source, MessageExchange dest) throws MessagingException { transferToFault(source.getFault(), dest); }
public static void transferFaultToFault(MessageExchange source, MessageExchange dest) throws MessagingException { transferToFault(source.getFault(), dest); }
private void processFault(MessageExchange exchange, HttpServletRequest request, HttpServletResponse response) throws Exception { SoapFault fault = new SoapFault( (QName) exchange.getFault().getProperty(JBIMarshaler.SOAP_FAULT_CODE), (QName) exchange.getFault().getProperty(JBIMarshaler.SOAP_FAULT_SUBCODE), (String) exchange.getFault().getProperty(JBIMarshaler.SOAP_FAULT_REASON), (URI) exchange.getFault().getProperty(JBIMarshaler.SOAP_FAULT_NODE), (URI) exchange.getFault().getProperty(JBIMarshaler.SOAP_FAULT_ROLE), exchange.getFault().getContent()); sendFault(fault, request, response); }
public static FaultException newInstance(MessageExchange exchange) throws NoFaultAvailableException { Fault fault = exchange.getFault(); if (fault == null) { throw new NoFaultAvailableException(exchange); } else { return new FaultException("Fault occurred invoking server: " + fault, exchange, fault); } }
@Override public String getPayload() { if(messageExchange.getFault() == null) { return getPayload("out"); } else { return getPayload("fault"); } } }
@Override public String getPayload() { if(messageExchange.getFault() == null) { return getPayload("out"); } else { return getPayload("fault"); } } }
protected NormalizedMessage extract(MessageExchange me) throws ExecutionException { if (me.getStatus() == ExchangeStatus.ERROR) { throw new ExecutionException(me.getError()); } else if (me.getFault() != null) { throw new ExecutionException(new FaultException("Fault occured", me, me.getFault())); } else { return me.getMessage("out"); } } }
private static Node getFaultMessage(MessageExchange mex) throws TransformerConfigurationException { Source s = null; if (mex.getFault() != null) { Fault f = mex.getFault(); if (f != null) { s = f.getContent(); } } if (s == null) { return null; } Transformer t = null; try { t = TransformerPool.get().retrieve(); DOMResult dr = new DOMResult(); t.transform(s, dr); return dr.getNode(); } catch (TransformerConfigurationException ex) { return null; } catch (TransformerException ex) { return null; } finally { if (t != null) { TransformerPool.get().relinquish(t); } } }
protected ClientException createFromOutMessage(MessageExchange messageExchange) { ClientException result = null; String message = null; if (ExchangeStatus.ERROR.equals(messageExchange.getStatus())) { message = "Got an ERROR while trying to send message to service, cause : TODO serialize ERROR"; result = new ClientException(message); } else if (messageExchange.getFault() != null) { message = "Got a FAULT while invoking service, cause : TODO serialize Fault"; // TODO : Create Document from Fault result = new ClientException(message); } else { message = "Got something wrong while invoking service..."; result = new ClientException(message); } return result; }
protected void assertExchangeWorked(MessageExchange me) throws Exception { if (me.getStatus() == ExchangeStatus.ERROR) { if (me.getError() != null) { throw me.getError(); } else { fail("Received ERROR status"); } } else if (me.getFault() != null) { fail("Received fault: " + new SourceTransformer().toString(me.getFault().getContent())); } }
private void processReponse(MessageExchange messageExchange, Exchange exchange) throws MessagingException { if (messageExchange.getStatus() == ExchangeStatus.ERROR) { exchange.setException(messageExchange.getError()); } else if (messageExchange.getStatus() == ExchangeStatus.ACTIVE) { // first copy the exchange headers binding.copyPropertiesFromJbiToCamel(messageExchange, exchange); // then copy the out/fault message if (messageExchange.getFault() != null) { binding.copyFromJbiToCamel(messageExchange.getMessage("fault"), exchange.getOut()); exchange.getOut().setBody(new FaultException("Fault occured for " + exchange.getPattern() + " exchange", messageExchange, messageExchange.getFault())); exchange.getOut().setFault(true); } else if (messageExchange.getMessage("out") != null) { binding.copyFromJbiToCamel(messageExchange.getMessage("out"), exchange.getOut()); } done(messageExchange); } }
/** * handles the incoming consumer messages * * @param exchange * @throws MessagingException */ protected void onConsumerExchange(MessageExchange exchange) throws MessagingException { // Out message if (exchange.getMessage("out") != null) { done(exchange); } else if (exchange.getFault() != null) { //Fault message done(exchange); } else { //This is not compliant with the default MEPs throw new MessagingException( "OSWorkflowEndpoint.onConsumerExchange(): Consumer exchange is ACTIVE, but no out or fault is provided"); } }
protected void onExchangeAccepted(ExchangeEvent event) { MessageExchange me = event.getExchange(); // This is a new exchange sent by a consumer if (me.getStatus() == ExchangeStatus.ACTIVE && me.getRole() == Role.PROVIDER && me.getMessage("out") == null && me.getFault() == null && me instanceof MessageExchangeImpl) { String source = EndpointSupport.getUniqueKey(me.getEndpoint()); EndpointStats stats = endpointStats.get(source); if (stats != null) { stats.incrementInbound(); } } }
public void handleMessage(Message message) { List<Attachment> attachmentList = new ArrayList<Attachment>(); MessageExchange exchange = message.get(MessageExchange.class); NormalizedMessage norMessage = null; if (isRequestor(message)) { norMessage = (NormalizedMessage) exchange.getMessage("out"); } else { norMessage = (NormalizedMessage) exchange.getMessage("in"); } if (norMessage == null) { norMessage = (NormalizedMessage) exchange.getFault(); } if (norMessage ==null) { return; } Set names = norMessage.getAttachmentNames(); for (Object obj : names) { String id = (String)obj; DataHandler dh = norMessage.getAttachment(id); attachmentList.add(new AttachmentImpl(id, dh)); } message.setAttachments(attachmentList); }
@Override protected void processAsync(MessageExchange exchange) throws Exception { validateMessageExchange(exchange); if (exchange.getStatus() == ExchangeStatus.DONE) { return; } else if (exchange.getStatus() == ExchangeStatus.ERROR) { return; } else if (exchange.getFault() != null) { done(exchange); return; } processMessage(exchange); done(exchange); }
@SuppressWarnings("null") public TransportedMessageExchange(final MessageExchange exchange) { this.exchangeId = exchange.getExchangeId(); this.status = toStatus(exchange.getStatus()); this.operation = exchange.getOperation(); this.pattern = exchange.getPattern(); this.error = exchange.getError(); this.fault = exchange.getFault(); this.in = exchange.getMessage(Exchange.IN_MESSAGE_NAME); this.out = exchange.getMessage(Exchange.OUT_MESSAGE_NAME); @SuppressWarnings({ "unchecked", "cast" }) final Set<String> propertyNames = (Set<String>) exchange.getPropertyNames(); for (String name : propertyNames) { final Object property = exchange.getProperty(name); if (property instanceof Serializable) { this.properties.put(name, (Serializable) property); } else { // TODO log?!?! } } }
protected void processSync(MessageExchange exchange) throws Exception { if (!(exchange instanceof InOnly) && !(exchange instanceof RobustInOnly)) { fail(exchange, new UnsupportedOperationException("Use an InOnly or RobustInOnly MEP")); return; } NormalizedMessage in = MessageUtil.copyIn(exchange); for (int i = 0; i < recipients.length; i++) { MessageExchange me = getExchangeFactory().createExchange(exchange.getPattern()); recipients[i].configureTarget(me, getContext()); in.setProperty(RECIPIENT_LIST_COUNT, new Integer(recipients.length)); in.setProperty(RECIPIENT_LIST_INDEX, new Integer(i)); in.setProperty(RECIPIENT_LIST_CORRID, exchange.getExchangeId()); MessageUtil.transferToIn(in, me); sendSync(me); if (me.getStatus() == ExchangeStatus.ERROR && reportErrors) { fail(exchange, me.getError()); return; } else if (me.getFault() != null && reportErrors) { MessageUtil.transferFaultToFault(me, exchange); sendSync(exchange); done(me); return; } } done(exchange); }
protected void processSync(MessageExchange exchange) throws Exception { if (!(exchange instanceof InOnly) && !(exchange instanceof RobustInOnly)) { fail(exchange, new UnsupportedOperationException("Use an InOnly or RobustInOnly MEP")); } else { NormalizedMessage in = MessageUtil.copyIn(exchange); MessageExchange me = getExchangeFactory().createExchange(exchange.getPattern()); target.configureTarget(me, getContext()); MessageUtil.transferToIn(in, me); if (filter.matches(me)) { sendSync(me); if (me.getStatus() == ExchangeStatus.ERROR && reportErrors) { fail(exchange, me.getError()); } else if (me.getStatus() == ExchangeStatus.DONE) { done(exchange); } else if (me.getFault() != null && reportErrors) { Fault fault = MessageUtil.copyFault(me); done(me); MessageUtil.transferToFault(fault, exchange); sendSync(exchange); } } else { done(exchange); } } }