From b4ec5b80b5cc73103786d47e59ad3943f2729cf4 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Tue, 26 Feb 2008 01:24:47 +0000 Subject: [PATCH] Added spring-ws client to stockquote example. --- samples/stockquote/client/spring-ws/build.xml | 48 +++++++++++++++ .../client/spring-ws/src/log4j.properties | 7 +++ .../stockquote/client/sws/StockClient.java | 59 +++++++++++++++++++ .../client/sws/applicationContext.xml | 13 ++++ .../stockquote/client/sws/quotesRequest.xml | 5 ++ .../samples/stockquote/ws/StockService.java | 10 +++- .../stockquote/ws/applicationContext-ws.xml | 3 + .../ws/samples/stockquote/ws/stockquote.wsdl | 2 +- 8 files changed, 143 insertions(+), 4 deletions(-) create mode 100644 samples/stockquote/client/spring-ws/build.xml create mode 100644 samples/stockquote/client/spring-ws/src/log4j.properties create mode 100644 samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/StockClient.java create mode 100644 samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/applicationContext.xml create mode 100644 samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/quotesRequest.xml diff --git a/samples/stockquote/client/spring-ws/build.xml b/samples/stockquote/client/spring-ws/build.xml new file mode 100644 index 00000000..8723ed15 --- /dev/null +++ b/samples/stockquote/client/spring-ws/build.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/stockquote/client/spring-ws/src/log4j.properties b/samples/stockquote/client/spring-ws/src/log4j.properties new file mode 100644 index 00000000..0f73a758 --- /dev/null +++ b/samples/stockquote/client/spring-ws/src/log4j.properties @@ -0,0 +1,7 @@ +log4j.rootLogger=WARN, stdout +log4j.logger.org.springframework.ws=DEBUG +log4j.logger.org.springframework.xml=DEBUG + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n \ No newline at end of file diff --git a/samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/StockClient.java b/samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/StockClient.java new file mode 100644 index 00000000..5b67d6af --- /dev/null +++ b/samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/StockClient.java @@ -0,0 +1,59 @@ +/* + * Copyright 2007 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.ws.samples.stockquote.client.sws; + +import java.io.IOException; +import java.net.URI; +import javax.xml.transform.Source; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.core.io.Resource; +import org.springframework.ws.client.core.support.WebServiceGatewaySupport; +import org.springframework.ws.soap.addressing.client.ActionCallback; +import org.springframework.xml.transform.ResourceSource; +import org.springframework.xml.transform.StringResult; + +public class StockClient extends WebServiceGatewaySupport { + + private Resource request; + + private URI action; + + public void setRequest(Resource request) { + this.request = request; + } + + public void setAction(URI action) { + this.action = action; + } + + public void quotes() throws IOException { + Source requestSource = new ResourceSource(request); + StringResult result = new StringResult(); + getWebServiceTemplate().sendSourceAndReceiveToResult(requestSource, new ActionCallback(action), result); + System.out.println(result); + } + + public static void main(String[] args) throws IOException { + ApplicationContext applicationContext = + new ClassPathXmlApplicationContext("applicationContext.xml", StockClient.class); + StockClient stockClient = (StockClient) applicationContext.getBean("stockClient"); + stockClient.quotes(); + } + +} diff --git a/samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/applicationContext.xml b/samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/applicationContext.xml new file mode 100644 index 00000000..83cbb814 --- /dev/null +++ b/samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/applicationContext.xml @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/quotesRequest.xml b/samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/quotesRequest.xml new file mode 100644 index 00000000..b40a2dc6 --- /dev/null +++ b/samples/stockquote/client/spring-ws/src/org/springframework/ws/samples/stockquote/client/sws/quotesRequest.xml @@ -0,0 +1,5 @@ + + + FABRIKAM + CONTOSO + diff --git a/samples/stockquote/src/main/java/org/springframework/ws/samples/stockquote/ws/StockService.java b/samples/stockquote/src/main/java/org/springframework/ws/samples/stockquote/ws/StockService.java index c9b4fcff..64eed485 100644 --- a/samples/stockquote/src/main/java/org/springframework/ws/samples/stockquote/ws/StockService.java +++ b/samples/stockquote/src/main/java/org/springframework/ws/samples/stockquote/ws/StockService.java @@ -17,17 +17,20 @@ package org.springframework.ws.samples.stockquote.ws; import java.util.GregorianCalendar; -import javax.xml.datatype.XMLGregorianCalendar; -import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.DatatypeConfigurationException; +import javax.xml.datatype.DatatypeFactory; +import javax.xml.datatype.XMLGregorianCalendar; import org.springframework.ws.samples.stockquote.schema.StockQuote; import org.springframework.ws.samples.stockquote.schema.StockQuoteRequest; import org.springframework.ws.samples.stockquote.schema.StockQuoteResponse; import org.springframework.ws.server.endpoint.annotation.Endpoint; import org.springframework.ws.soap.addressing.server.annotation.Action; +import org.springframework.ws.soap.addressing.server.annotation.Address; @Endpoint +@Address("http://localhost:8080/StockService") +// optional public class StockService { private DatatypeFactory datatypeFactory; @@ -36,7 +39,8 @@ public class StockService { datatypeFactory = DatatypeFactory.newInstance(); } - @Action("http://www.springframework.org/spring-ws/samples/stockquote/StockService/GetQuote") + @Action(value = "http://www.springframework.org/spring-ws/samples/stockquote/StockService/GetQuote", + output = "http://www.springframework.org/spring-ws/samples/stockquote/StockService/Quotes") public StockQuoteResponse getStockQuotes(StockQuoteRequest request) { StockQuoteResponse response = new StockQuoteResponse(); diff --git a/samples/stockquote/src/main/resources/org/springframework/ws/samples/stockquote/ws/applicationContext-ws.xml b/samples/stockquote/src/main/resources/org/springframework/ws/samples/stockquote/ws/applicationContext-ws.xml index c30daffb..ca23b945 100644 --- a/samples/stockquote/src/main/resources/org/springframework/ws/samples/stockquote/ws/applicationContext-ws.xml +++ b/samples/stockquote/src/main/resources/org/springframework/ws/samples/stockquote/ws/applicationContext-ws.xml @@ -22,6 +22,9 @@ + + + diff --git a/samples/stockquote/src/main/resources/org/springframework/ws/samples/stockquote/ws/stockquote.wsdl b/samples/stockquote/src/main/resources/org/springframework/ws/samples/stockquote/ws/stockquote.wsdl index ede8be8e..76a212d3 100644 --- a/samples/stockquote/src/main/resources/org/springframework/ws/samples/stockquote/ws/stockquote.wsdl +++ b/samples/stockquote/src/main/resources/org/springframework/ws/samples/stockquote/ws/stockquote.wsdl @@ -49,7 +49,7 @@ + wsaw:Action="http://www.springframework.org/spring-ws/samples/stockquote/StockService/Quotes"/>