@Override protected Object doHandle(String uri, final Message<?> requestMessage, final WebServiceMessageCallback requestCallback) { Object requestPayload = requestMessage.getPayload(); Result responseResultInstance = null; if (requestPayload instanceof String) { responseResultInstance = new StringResult(); } else if (requestPayload instanceof Document) { responseResultInstance = new DOMResult(); } return getWebServiceTemplate() .sendAndReceive(uri, new SimpleRequestMessageCallback(requestCallback, requestMessage), new SimpleResponseMessageExtractor(responseResultInstance)); }
@Test @SuppressWarnings("unchecked") public void jmsUri() { AbstractEndpoint endpoint = this.context.getBean("gatewayWithJmsUri", AbstractEndpoint.class); assertEquals(EventDrivenConsumer.class, endpoint.getClass()); MessageHandler handler = TestUtils.getPropertyValue(endpoint, "handler", MessageHandler.class); assertNull(TestUtils.getPropertyValue(handler, "destinationProvider")); assertFalse(TestUtils.getPropertyValue(handler, "encodeUri", Boolean.class)); WebServiceTemplate webServiceTemplate = TestUtils.getPropertyValue(handler, "webServiceTemplate", WebServiceTemplate.class); webServiceTemplate = spy(webServiceTemplate); doReturn(null).when(webServiceTemplate).sendAndReceive(anyString(), any(WebServiceMessageCallback.class), ArgumentMatchers.<WebServiceMessageExtractor<Object>>any()); new DirectFieldAccessor(handler).setPropertyValue("webServiceTemplate", webServiceTemplate); handler.handleMessage(new GenericMessage<String>("foo")); verify(webServiceTemplate).sendAndReceive(eq("jms:wsQueue"), any(WebServiceMessageCallback.class), ArgumentMatchers.<WebServiceMessageExtractor<Object>>any()); }
@Test @SuppressWarnings("unchecked") public void testHttpUriVariables() { WebServiceTemplate webServiceTemplate = TestUtils.getPropertyValue(this.httpOutboundGateway, "webServiceTemplate", WebServiceTemplate.class); webServiceTemplate = Mockito.spy(webServiceTemplate); final AtomicReference<String> uri = new AtomicReference<>(); doAnswer(invocation -> { uri.set(invocation.getArgument(0)); throw new WebServiceIOException("intentional"); }).when(webServiceTemplate) .sendAndReceive(Mockito.anyString(), Mockito.any(WebServiceMessageCallback.class), (WebServiceMessageExtractor<Object>) Mockito.any(WebServiceMessageExtractor.class)); new DirectFieldAccessor(this.httpOutboundGateway).setPropertyValue("webServiceTemplate", webServiceTemplate); Message<?> message = MessageBuilder.withPayload("<spring/>") .setHeader("x", "integration") .setHeader("param", "test1 & test2") .build(); try { this.inputHttp.send(message); } catch (MessageHandlingException e) { // expected assertThat(e.getCause(), Matchers.is(Matchers.instanceOf(WebServiceIOException.class))); // offline } assertEquals("http://localhost/spring-integration?param=test1%20&%20test2", uri.get()); }
public Object marshalSendAndReceive(String uri, final Object requestPayload, final WebServiceMessageCallback requestCallback) { return sendAndReceive(uri, new WebServiceMessageCallback() { public void doWithMessage(WebServiceMessage request) throws IOException, TransformerException { if (requestPayload != null) { Marshaller marshaller = getMarshaller(); if (marshaller == null) { throw new IllegalStateException( "No marshaller registered. Check configuration of WebServiceTemplate."); } MarshallingUtils.marshal(marshaller, requestPayload, request); if (requestCallback != null) { requestCallback.doWithMessage(request); } } } }, new WebServiceMessageExtractor<Object>() { public Object extractData(WebServiceMessage response) throws IOException { Unmarshaller unmarshaller = getUnmarshaller(); if (unmarshaller == null) { throw new IllegalStateException( "No unmarshaller registered. Check configuration of WebServiceTemplate."); } return MarshallingUtils.unmarshal(unmarshaller, response); } }); }
@Override public <T> T sendAndReceive(WebServiceMessageCallback requestCallback, WebServiceMessageExtractor<T> responseExtractor) { return sendAndReceive(getDefaultUri(), requestCallback, responseExtractor); }
@Override public boolean sendAndReceive(String uri, WebServiceMessageCallback requestCallback, WebServiceMessageCallback responseCallback) { Assert.notNull(responseCallback, "responseCallback must not be null"); Boolean result = sendAndReceive(uri, requestCallback, new WebServiceMessageCallbackMessageExtractor(responseCallback)); return result != null && result; }
@Override public <T> T sendAndReceive(WebServiceMessageCallback requestCallback, WebServiceMessageExtractor<T> responseExtractor) { return sendAndReceive(getDefaultUri(), requestCallback, responseExtractor); }
@Override public boolean sendAndReceive(WebServiceMessageCallback requestCallback, WebServiceMessageCallback responseCallback) { return sendAndReceive(getDefaultUri(), requestCallback, responseCallback); }
public boolean sendAndReceive(String uri, WebServiceMessageCallback requestCallback, WebServiceMessageCallback responseCallback) { Assert.notNull(responseCallback, "responseCallback must not be null"); Boolean result = sendAndReceive(uri, requestCallback, new WebServiceMessageCallbackMessageExtractor(responseCallback)); return result != null && result; }
@Override public boolean sendAndReceive(String uri, WebServiceMessageCallback requestCallback, WebServiceMessageCallback responseCallback) { Assert.notNull(responseCallback, "responseCallback must not be null"); Boolean result = sendAndReceive(uri, requestCallback, new WebServiceMessageCallbackMessageExtractor(responseCallback)); return result != null && result; }
public <T> T sendAndReceive(WebServiceMessageCallback requestCallback, WebServiceMessageExtractor<T> responseExtractor) { return sendAndReceive(getDefaultUri(), requestCallback, responseExtractor); }
@Override public boolean sendAndReceive(WebServiceMessageCallback requestCallback, WebServiceMessageCallback responseCallback) { return sendAndReceive(getDefaultUri(), requestCallback, responseCallback); }
@Override public <T> T sendAndReceive(WebServiceMessageCallback requestCallback, WebServiceMessageExtractor<T> responseExtractor) { return sendAndReceive(getDefaultUri(), requestCallback, responseExtractor); }
@Override public boolean sendAndReceive(WebServiceMessageCallback requestCallback, WebServiceMessageCallback responseCallback) { return sendAndReceive(getDefaultUri(), requestCallback, responseCallback); }
@Override public boolean sendAndReceive(String uri, WebServiceMessageCallback requestCallback, WebServiceMessageCallback responseCallback) { Assert.notNull(responseCallback, "responseCallback must not be null"); Boolean result = sendAndReceive(uri, requestCallback, new WebServiceMessageCallbackMessageExtractor(responseCallback)); return result != null && result; }
public boolean sendAndReceive(WebServiceMessageCallback requestCallback, WebServiceMessageCallback responseCallback) { return sendAndReceive(getDefaultUri(), requestCallback, responseCallback); }
private <T> T doSendAndReceive(String uri, final Transformer transformer, final Source requestPayload, final WebServiceMessageCallback requestCallback, final SourceExtractor<T> responseExtractor) { Assert.notNull(responseExtractor, "responseExtractor must not be null"); return sendAndReceive(uri, new WebServiceMessageCallback() { public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException { transformer.transform(requestPayload, message.getPayloadResult()); if (requestCallback != null) { requestCallback.doWithMessage(message); } } }, new SourceExtractorMessageExtractor<T>(responseExtractor)); }
private <T> T doSendAndReceive(String uri, final Transformer transformer, final Source requestPayload, final WebServiceMessageCallback requestCallback, final SourceExtractor<T> responseExtractor) { Assert.notNull(responseExtractor, "responseExtractor must not be null"); return sendAndReceive(uri, new WebServiceMessageCallback() { public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException { transformer.transform(requestPayload, message.getPayloadResult()); if (requestCallback != null) { requestCallback.doWithMessage(message); } } }, new SourceExtractorMessageExtractor<T>(responseExtractor)); }
private <T> T doSendAndReceive(String uri, final Transformer transformer, final Source requestPayload, final WebServiceMessageCallback requestCallback, final SourceExtractor<T> responseExtractor) { Assert.notNull(responseExtractor, "responseExtractor must not be null"); return sendAndReceive(uri, new WebServiceMessageCallback() { public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException { transformer.transform(requestPayload, message.getPayloadResult()); if (requestCallback != null) { requestCallback.doWithMessage(message); } } }, new SourceExtractorMessageExtractor<T>(responseExtractor)); }
private <T> T doSendAndReceive(String uri, final Transformer transformer, final Source requestPayload, final WebServiceMessageCallback requestCallback, final SourceExtractor<T> responseExtractor) { Assert.notNull(responseExtractor, "responseExtractor must not be null"); return sendAndReceive(uri, new WebServiceMessageCallback() { public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException { transformer.transform(requestPayload, message.getPayloadResult()); if (requestCallback != null) { requestCallback.doWithMessage(message); } } }, new SourceExtractorMessageExtractor<T>(responseExtractor)); }