private static void addJMSPropertiesFromMessage(JMSMessageHeadersType messageProperties, org.apache.cxf.message.Message message, String... keys) { for (String key : keys) { addJMSPropertyFromMessage(messageProperties, message, key); } }
private static String getSoapAction(JMSMessageHeadersType messageProperties, org.apache.cxf.message.Message outMessage, Map<String, List<String>> headers) { String soapAction = null; if (headers != null) { List<String> action = headers.remove("SOAPAction"); if (action != null && !action.isEmpty()) { soapAction = action.get(0); } } if (soapAction == null) { soapAction = messageProperties.getSOAPJMSSOAPAction(); } if (soapAction == null) { soapAction = extractActionFromSoap12(outMessage); } return soapAction; }
private String getMessageType(final Message outMessage, final javax.jms.Message request) { String msgType; if (JMSMessageUtils.isMtomEnabled(outMessage) && !jmsConfig.getMessageType().equals(JMSConstants.TEXT_MESSAGE_TYPE)) { //get chance to set messageType from JMSConfiguration with MTOM enabled msgType = jmsConfig.getMessageType(); } else { msgType = JMSMessageUtils.getMessageType(request); } if (JMSConstants.TEXT_MESSAGE_TYPE.equals(msgType) && JMSMessageUtils.isMtomEnabled(outMessage)) { org.apache.cxf.common.i18n.Message msg = new org.apache.cxf.common.i18n.Message("INVALID_MESSAGE_TYPE", LOG); throw new ConfigurationException(msg); } return msgType; }
JMSMessageHeadersType messageHeaders = getOrCreateHeader(outMessage, headerType); if (!messageHeaders.isSetJMSDeliveryMode()) { messageHeaders.setJMSDeliveryMode(jmsConfig.getDeliveryMode()); messageHeaders.setSOAPJMSContentType(JMSMessageUtils.getContentType(outMessage)); if (JMSMessageUtils.getContentEncoding(outMessage) != null) { messageHeaders.setSOAPJMSContentEncoding(JMSMessageUtils.getContentEncoding(outMessage)); String soapAction = JMSMessageUtils.getSoapAction(messageHeaders, outMessage, headers); if (soapAction != null) { messageHeaders.setSOAPJMSSOAPAction(soapAction); addJMSPropertiesFromMessage(messageHeaders, outMessage, org.apache.cxf.message.Message.HTTP_REQUEST_METHOD, org.apache.cxf.message.Message.ACCEPT_CONTENT_TYPE); } else { addJMSPropertyFromMessage(messageHeaders, outMessage, org.apache.cxf.message.Message.RESPONSE_CODE); addJMSPropertyFromMessage(messageHeaders, outMessage, JMSConstants.RS_CONTENT_TYPE); addJMSPropertyFromMessage(messageHeaders, outMessage, JMSConstants.RS_CONTENT_LENGTH);
javax.jms.Message reply = JMSMessageUtils.asJMSMessage(jmsConfig, outMessage, replyObj,
/** * Process the reply message * @throws JMSException */ protected void processReplyMessage(Exchange exchange, javax.jms.Message jmsMessage) throws JMSException { LOG.log(Level.FINE, "client received reply: ", jmsMessage); try { Message inMessage = JMSMessageUtils.asCXFMessage(jmsMessage, JMSConstants.JMS_CLIENT_RESPONSE_HEADERS); if (jmsConfig.isCreateSecurityContext()) { SecurityContext securityContext = SecurityContextFactory.buildSecurityContext(jmsMessage, jmsConfig); inMessage.put(SecurityContext.class, securityContext); } exchange.setInMessage(inMessage); Object responseCode = inMessage.get(org.apache.cxf.message.Message.RESPONSE_CODE); exchange.put(org.apache.cxf.message.Message.RESPONSE_CODE, responseCode); if (exchange.isSynchronous()) { synchronized (exchange) { exchange.put(CORRELATED, Boolean.TRUE); exchange.notifyAll(); } } if (incomingObserver != null) { incomingObserver.onMessage(exchange.getInMessage()); } } catch (UnsupportedEncodingException ex) { getLogger().log(Level.WARNING, "can't get the right encoding information " + ex); } }
if (contentType != null) { inMessage.put(org.apache.cxf.message.Message.CONTENT_TYPE, contentType); inMessage.put(org.apache.cxf.message.Message.ENCODING, getEncoding(contentType));
private String sendMessage(final Object request, final Message outMessage, Destination replyToDestination, String correlationId, ResourceCloser closer, Session session) throws JMSException { JMSMessageHeadersType headers = getOrCreateJmsHeaders(outMessage); javax.jms.Message message = JMSMessageUtils.asJMSMessage(jmsConfig, outMessage, request, jmsConfig.getMessageType(), session, correlationId, JMSConstants.JMS_CLIENT_REQUEST_HEADERS); if (replyToDestination == null && headers.isSetJMSReplyTo()) { String replyTo = headers.getJMSReplyTo(); replyToDestination = jmsConfig.getReplyDestination(session, replyTo); } if (replyToDestination != null) { message.setJMSReplyTo(replyToDestination); } JMSSender sender = JMSFactory.createJmsSender(jmsConfig, headers); Destination targetDest = jmsConfig.getTargetDestination(session); sender.sendMessage(session, targetDest, message); String jmsMessageID = message.getJMSMessageID(); LOG.log(Level.FINE, "client sending request message " + jmsMessageID + " to " + targetDest); headers.setJMSMessageID(jmsMessageID); return jmsMessageID; }
"JMS destination received message " + message + " on " + jmsConfig.getTargetDestination()); Message inMessage = JMSMessageUtils.asCXFMessage(message, JMSConstants.JMS_SERVER_REQUEST_HEADERS); if (jmsConfig.isCreateSecurityContext()) { SecurityContext securityContext = SecurityContextFactory.buildSecurityContext(message, jmsConfig);