@Test public void test0008() throws Exception { TestCaseType testcase = JMSTestUtil.getTestCase("test0008"); final JMSSimplePortType simplePort = getPort("JMSSimpleService0008", "SimplePort", JMSSimpleService0008.class, JMSSimplePortType.class); JMSMessageHeadersType requestHeader = new JMSMessageHeadersType(); requestHeader.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT); requestHeader.setTimeToLive(14400000); requestHeader.setJMSPriority(8); requestHeader.setJMSReplyTo("dynamicQueues/replyqueue0008"); twoWayTestWithRequestHeader(testcase, simplePort, requestHeader); }
/** * @param messageProperties * @param inMessageProperties */ public static void initResponseMessageProperties(JMSMessageHeadersType messageProperties, JMSMessageHeadersType inMessageProperties) { messageProperties.setJMSDeliveryMode(inMessageProperties.getJMSDeliveryMode()); messageProperties.setJMSPriority(inMessageProperties.getJMSPriority()); messageProperties.setSOAPJMSRequestURI(inMessageProperties.getSOAPJMSRequestURI()); messageProperties.setSOAPJMSSOAPAction(inMessageProperties.getSOAPJMSSOAPAction()); messageProperties.setSOAPJMSBindingVersion("1.0"); }
private static void populateIncomingContext(JMSMessageHeadersType messageHeaders, org.apache.cxf.message.Message inMessage) throws UnsupportedEncodingException { String contentType = messageHeaders.getContentType(); if (contentType != null) { inMessage.put(org.apache.cxf.message.Message.CONTENT_TYPE, contentType); inMessage.put(org.apache.cxf.message.Message.ENCODING, getEncoding(contentType)); String responseCode = (String)messageHeaders.getProperty(org.apache.cxf.message.Message.RESPONSE_CODE); if (responseCode != null) { inMessage.put(org.apache.cxf.message.Message.RESPONSE_CODE, Integer.valueOf(responseCode)); for (String name : messageHeaders.getPropertyKeys()) { String val = (String)messageHeaders.getProperty(name); protHeaders.put(name, Collections.singletonList(val)); String requestURI = messageHeaders.getSOAPJMSRequestURI(); if (requestURI != null) { try {
public static JMSMessageHeadersType from(Message message) throws JMSException { JMSMessageHeadersType messageHeaders = new JMSMessageHeadersType(); messageHeaders.read(message); return messageHeaders; }
public String getContentType() { String contentType = getSOAPJMSContentType(); if (contentType == null) { contentType = (String)getProperty(JMSSpecConstants.CONTENTTYPE_FIELD); } if (contentType == null) { contentType = (String)getProperty(JMSConstants.RS_CONTENT_TYPE); } if (contentType == null) { contentType = (String)getProperty(org.apache.cxf.message.Message.CONTENT_TYPE); } return contentType; }
if (header.isSetJMSDeliveryMode()) { dm = header.getJMSDeliveryMode(); assertEquals(header.getJMSPriority(), messageProperties.getPriority().intValue()); assertEquals(header.getSOAPJMSBindingVersion(), messageProperties.getBindingVersion()); assertEquals(header.getSOAPJMSTargetService(), messageProperties.getTargetService()); assertEquals(header.getSOAPJMSContentType(), messageProperties.getContentType()); assertEquals(header.getSOAPJMSSOAPAction(), messageProperties.getSoapAction()); assertEquals(header.getSOAPJMSRequestURI(), messageProperties.getRequestURI().trim()); assertEquals(header.isSOAPJMSIsFault(), messageProperties.isIsFault());
JMSMessageHeadersType requestHeader = new JMSMessageHeadersType(); requestHeader.setJMSCorrelationID("JMS_SAMPLE_CORRELATION_ID"); requestHeader.setJMSExpiration(3600000L); requestHeader.putProperty(testReturnPropertyName, "mustReturn"); requestHeader.putProperty(testIgnoredPropertyName, "mustNotReturn"); requestContext.put(JMSConstants.JMS_CLIENT_REQUEST_HEADERS, requestHeader); "JMS_SAMPLE_CORRELATION_ID".equals(responseHdr.getJMSCorrelationID())); assertTrue("response Headers must conain the app property set in request context.", responseHdr.getPropertyKeys().size() > 0); boolean found = responseHdr.getPropertyKeys().contains(testReturnPropertyName); assertTrue("response Headers must match the app property set in request context.", found); ((Closeable)greeter).close();
@Test public void testWsdlExtensionSpecJMS() throws Exception { QName serviceName = new QName(SERVICE_NS, "JMSGreeterService"); QName portName = new QName(SERVICE_NS, "GreeterPort"); URL wsdl = getWSDLURL(WSDL); JMSGreeterService service = new JMSGreeterService(wsdl, serviceName); JMSGreeterPortType greeter = markForClose(service.getPort(portName, JMSGreeterPortType.class, cff)); Map<String, Object> requestContext = ((BindingProvider)greeter).getRequestContext(); JMSMessageHeadersType requestHeader = new JMSMessageHeadersType(); requestContext.put(JMSConstants.JMS_CLIENT_REQUEST_HEADERS, requestHeader); String reply = greeter.sayHi(); Assert.assertEquals("Bonjour", reply); requestContext = ((BindingProvider)greeter).getRequestContext(); requestHeader = (JMSMessageHeadersType)requestContext.get(JMSConstants.JMS_CLIENT_REQUEST_HEADERS); Assert.assertEquals("1.0", requestHeader.getSOAPJMSBindingVersion()); Assert.assertEquals("\"test\"", requestHeader.getSOAPJMSSOAPAction()); Assert.assertEquals(3000, requestHeader.getTimeToLive()); Assert.assertEquals(DeliveryMode.PERSISTENT, requestHeader.getJMSDeliveryMode()); Assert.assertEquals(7, requestHeader.getJMSPriority()); Map<String, Object> responseContext = ((BindingProvider)greeter).getResponseContext(); JMSMessageHeadersType responseHeader = (JMSMessageHeadersType)responseContext .get(JMSConstants.JMS_CLIENT_RESPONSE_HEADERS); Assert.assertEquals("1.0", responseHeader.getSOAPJMSBindingVersion()); Assert.assertEquals("\"test\"", responseHeader.getSOAPJMSSOAPAction()); Assert.assertEquals(DeliveryMode.PERSISTENT, responseHeader.getJMSDeliveryMode()); Assert.assertEquals(7, responseHeader.getJMSPriority()); }
private JMSMessageHeadersType getOrCreateJmsHeaders(final Message outMessage) { JMSMessageHeadersType headers = (JMSMessageHeadersType)outMessage .get(JMSConstants.JMS_CLIENT_REQUEST_HEADERS); if (headers == null) { headers = new JMSMessageHeadersType(); outMessage.put(JMSConstants.JMS_CLIENT_REQUEST_HEADERS, headers); } return headers; }
/** * Create JmsSender from configuration information. Most settings are taken from jmsConfig. The QoS * settings in messageProperties override the settings from jmsConfig * * @param jmsConfig configuration information * @param messageProperties context headers override config settings * @return */ public static JMSSender createJmsSender(JMSConfiguration jmsConfig, JMSMessageHeadersType messageProperties) { JMSSender sender = new JMSSender(); long timeToLive = (messageProperties != null && messageProperties.isSetTimeToLive()) ? messageProperties.getTimeToLive() : jmsConfig.getTimeToLive(); sender.setTimeToLive(timeToLive); int priority = (messageProperties != null && messageProperties.isSetJMSPriority()) ? messageProperties.getJMSPriority() : jmsConfig.getPriority(); sender.setPriority(priority); int deliveryMode = (messageProperties != null && messageProperties.isSetJMSDeliveryMode()) ? messageProperties.getJMSDeliveryMode() : jmsConfig.getDeliveryMode(); sender.setDeliveryMode(deliveryMode); sender.setExplicitQosEnabled(jmsConfig.isExplicitQosEnabled()); return sender; }
@Test public void test1101() throws Exception { // same to test0002 TestCaseType testcase = JMSTestUtil.getTestCase("test1101"); final JMSSimplePortType simplePort = getPort("JMSSimpleService1101", "SimplePort", JMSSimpleService1101.class, JMSSimplePortType.class); JMSMessageHeadersType requestHeader = new JMSMessageHeadersType(); requestHeader.setSOAPJMSBindingVersion("0.3"); try { twoWayTestWithRequestHeader(testcase, simplePort, requestHeader); } catch (Exception e) { assertTrue(e.getMessage().contains("Unrecognized BindingVersion")); } }
JMSMessageHeadersType requestHeader = new JMSMessageHeadersType(); requestHeader.setJMSReplyTo("dynamicQueues/test.jmstransport.oneway.with.set.replyto.reply"); requestContext.put(JMSConstants.JMS_CLIENT_REQUEST_HEADERS, requestHeader); String expectedRequest = "JMS:Queue:Request";
private void callGreetMe() { BindingProvider bp = (BindingProvider)port; Map<String, Object> requestContext = bp.getRequestContext(); JMSMessageHeadersType requestHeader = new JMSMessageHeadersType(); requestContext.put(JMSConstants.JMS_CLIENT_REQUEST_HEADERS, requestHeader); String request = "World" + ((prefix != null) ? ":" + prefix : ""); String correlationID = null; if (corrFactory != null) { correlationID = corrFactory.createCorrealtionID(); requestHeader.setJMSCorrelationID(correlationID); request += ":" + correlationID; } String expected = "Hello " + request; String response = port.greetMe(request); Assert.assertEquals("Response didn't match expected request", expected, response); if (corrFactory != null) { Map<String, Object> responseContext = bp.getResponseContext(); JMSMessageHeadersType responseHeader = (JMSMessageHeadersType)responseContext.get( JMSConstants.JMS_CLIENT_RESPONSE_HEADERS); Assert.assertEquals("Request and Response CorrelationID didn't match", correlationID, responseHeader.getJMSCorrelationID()); } } }
@Test public void testBindingVersionError() throws Exception { QName serviceName = new QName(SERVICE_NS, "JMSGreeterService"); QName portName = new QName(SERVICE_NS, "GreeterPort"); URL wsdl = getWSDLURL(WSDL); JMSGreeterService service = new JMSGreeterService(wsdl, serviceName); JMSGreeterPortType greeter = markForClose(service.getPort(portName, JMSGreeterPortType.class, cff)); BindingProvider bp = (BindingProvider)greeter; Map<String, Object> requestContext = bp.getRequestContext(); JMSMessageHeadersType requestHeader = new JMSMessageHeadersType(); requestHeader.setSOAPJMSBindingVersion("0.3"); requestContext.put(JMSConstants.JMS_CLIENT_REQUEST_HEADERS, requestHeader); try { greeter.greetMe("Milestone-"); Assert.fail("Should have thrown a fault"); } catch (SOAPFaultException ex) { Assert.assertTrue(ex.getMessage().contains("0.3")); Map<String, Object> responseContext = bp.getResponseContext(); JMSMessageHeadersType responseHdr = (JMSMessageHeadersType)responseContext .get(JMSConstants.JMS_CLIENT_RESPONSE_HEADERS); if (responseHdr == null) { Assert.fail("response Header should not be null"); } Assert.assertTrue(responseHdr.isSOAPJMSIsFault()); } }
@Test public void test0002() throws Exception { TestCaseType testcase = JMSTestUtil.getTestCase("test0002"); final JMSSimplePortType simplePort = getPort("JMSSimpleService0001", "SimplePort", JMSSimpleService0001.class, JMSSimplePortType.class); JMSMessageHeadersType requestHeader = new JMSMessageHeadersType(); requestHeader.setJMSCorrelationID("Correlator0002"); twoWayTestWithRequestHeader(testcase, simplePort, requestHeader); }
@Test public void test1105() throws Exception { TestCaseType testcase = JMSTestUtil.getTestCase("test1105"); final JMSSimplePortType simplePort = getPort("JMSSimpleService1105", "SimplePort", JMSSimpleService1105.class, JMSSimplePortType.class); JMSMessageHeadersType requestHeader = new JMSMessageHeadersType(); requestHeader.setSOAPJMSSOAPAction("mismatch"); try { twoWayTestWithRequestHeader(testcase, simplePort, requestHeader); } catch (Exception e) { assertTrue(e.getMessage().contains("Mismatched SoapAction")); } }
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; }
String userCID = headers.getJMSCorrelationID(); assertIsNotAsyncAndUserCID(exchange, userCID); String correlationId = createCorrelationId(exchange, userCID); String replyTo = headers.getJMSReplyTo(); String jmsMessageID = sendMessage(request, outMessage, jmsConfig.getReplyToDestination(session, replyTo),
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; }
protected void sendReply() { JMSMessageHeadersType headers = (JMSMessageHeadersType)context.getMessageContext().get(JMSConstants.JMS_SERVER_REQUEST_HEADERS); if (headers == null || headers.getJMSReplyTo() == null) { synchronized (this) { if (!specCompliant) { } else if (headers != null && headers.getJMSReplyTo() != null && specCompliant) { synchronized (this) { asyncEx = new Exception("ReplyTo header in the server Request context was not null");