diff --git a/airline/client/axis1/.mvn/wrapper/maven-wrapper.jar b/airline/client/axis/.mvn/wrapper/maven-wrapper.jar
similarity index 100%
rename from airline/client/axis1/.mvn/wrapper/maven-wrapper.jar
rename to airline/client/axis/.mvn/wrapper/maven-wrapper.jar
diff --git a/airline/client/axis1/.mvn/wrapper/maven-wrapper.properties b/airline/client/axis/.mvn/wrapper/maven-wrapper.properties
similarity index 100%
rename from airline/client/axis1/.mvn/wrapper/maven-wrapper.properties
rename to airline/client/axis/.mvn/wrapper/maven-wrapper.properties
diff --git a/airline/client/axis1/mvnw b/airline/client/axis/mvnw
similarity index 100%
rename from airline/client/axis1/mvnw
rename to airline/client/axis/mvnw
diff --git a/airline/client/axis1/mvnw.cmd b/airline/client/axis/mvnw.cmd
similarity index 100%
rename from airline/client/axis1/mvnw.cmd
rename to airline/client/axis/mvnw.cmd
diff --git a/airline/client/axis/pom.xml b/airline/client/axis/pom.xml
new file mode 100644
index 0000000..b07193e
--- /dev/null
+++ b/airline/client/axis/pom.xml
@@ -0,0 +1,89 @@
+
+
+ 4.0.0
+
+ org.springframework.ws
+ spring-ws-samples
+ 2.1.0-SNAPSHOT
+ ../../../pom.xml
+
+ airline-client-axis
+ Spring Web Services Samples - Airline - Client - Axis
+
+
+ ${project.basedir}/target/generated-sources/axis
+ ${project.basedir}/../airline.wsdl
+
+
+
+
+ org.apache.axis2
+ axis2-adb
+
+
+ org.apache.axis2
+ axis2-transport-local
+
+
+ org.apache.axis2
+ axis2-transport-http
+
+
+
+
+
+
+ org.apache.axis2
+ axis2-wsdl2code-maven-plugin
+
+
+ wsdl2code
+
+ wsdl2code
+
+
+
+
+ true
+
+
+ http://www.springframework.org/spring-ws/samples/airline/definitions
+ org.springframework.ws.samples.airline.client.axis
+
+
+ http://www.springframework.org/spring-ws/samples/airline/schemas/messages
+ org.springframework.ws.samples.airline.client.axis
+
+
+ http://www.springframework.org/spring-ws/samples/airline/schemas/types
+ org.springframework.ws.samples.airline.client.axis
+
+
+ ${generated-sources}
+ ${wsdl}
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ add-source
+ process-sources
+
+ add-source
+
+
+
+ ${generated-sources}/src
+
+
+
+
+
+
+
+
+
diff --git a/airline/client/axis1/readme.txt b/airline/client/axis/readme.txt
similarity index 100%
rename from airline/client/axis1/readme.txt
rename to airline/client/axis/readme.txt
diff --git a/airline/client/axis1/src/main/java/org/springframework/ws/samples/airline/client/axis1/AxisMain.java b/airline/client/axis/src/main/java/org/springframework/ws/samples/airline/client/axis/AxisMain.java
similarity index 56%
rename from airline/client/axis1/src/main/java/org/springframework/ws/samples/airline/client/axis1/AxisMain.java
rename to airline/client/axis/src/main/java/org/springframework/ws/samples/airline/client/axis/AxisMain.java
index dbd81be..0c1a35d 100644
--- a/airline/client/axis1/src/main/java/org/springframework/ws/samples/airline/client/axis1/AxisMain.java
+++ b/airline/client/axis/src/main/java/org/springframework/ws/samples/airline/client/axis/AxisMain.java
@@ -14,35 +14,39 @@
* limitations under the License.
*/
-package org.springframework.ws.samples.airline.client.axis1;
+package org.springframework.ws.samples.airline.client.axis;
import java.rmi.RemoteException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
-import javax.xml.rpc.ServiceException;
+import org.springframework.ws.samples.airline.client.axis.AirlineServiceStub.AirportCode;
+import org.springframework.ws.samples.airline.client.axis.AirlineServiceStub.BookFlightRequest;
+import org.springframework.ws.samples.airline.client.axis.AirlineServiceStub.BookFlightResponse;
+import org.springframework.ws.samples.airline.client.axis.AirlineServiceStub.Flight;
+import org.springframework.ws.samples.airline.client.axis.AirlineServiceStub.FrequentFlyerUsername;
+import org.springframework.ws.samples.airline.client.axis.AirlineServiceStub.GetFlightsRequest;
+import org.springframework.ws.samples.airline.client.axis.AirlineServiceStub.GetFlightsResponse;
+import org.springframework.ws.samples.airline.client.axis.AirlineServiceStub.Name;
+import org.springframework.ws.samples.airline.client.axis.AirlineServiceStub.PassengersChoice;
+import org.springframework.ws.samples.airline.client.axis.AirlineServiceStub.Passengers_type0;
+import org.springframework.ws.samples.airline.client.axis.AirlineServiceStub.Ticket;
/**
* Simple client that calls the GetFlights and BookFlight
- * operations using JAX-RPC (Axis 1).
+ * operations using Axis 2 and HTTP.
*
* @author Arjen Poutsma
+ * @author Stephane Nicoll
*/
public class AxisMain {
- public static void main(String[] args) throws ServiceException, RemoteException {
-
- AirlineServiceLocator service = new AirlineServiceLocator();
-
- if (args.length > 0) {
- service.setAirlineSoap11EndpointAddress(args[0]);
- }
-
- Airline airline = service.getAirlineSoap11();
+ public static void main(String[] args) throws RemoteException {
+ AirlineServiceStub airline = (args.length > 0) ? new AirlineServiceStub(args[0]) : new AirlineServiceStub();
GetFlightsRequest request = new GetFlightsRequest();
- request.setFrom("AMS");
- request.setTo("VCE");
+ request.setFrom(createAirportCode("AMS"));
+ request.setTo(createAirportCode("VCE"));
Calendar departureCalendar = Calendar.getInstance();
departureCalendar.set(Calendar.YEAR, 2006);
departureCalendar.set(Calendar.MONTH, Calendar.JANUARY);
@@ -52,7 +56,8 @@ public class AxisMain {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("Requesting flights on " + dateFormat.format(departureDate));
- Flight[] flights = airline.getFlights(request);
+ GetFlightsResponse flightsResponse = airline.getFlights(request);
+ Flight[] flights = flightsResponse.getFlight();
System.out.println("Got " + flights.length + " results");
@@ -61,23 +66,24 @@ public class AxisMain {
BookFlightRequest bookFlightRequest = new BookFlightRequest();
bookFlightRequest.setFlightNumber(flights[0].getNumber());
bookFlightRequest.setDepartureTime(flights[0].getDepartureTime());
- BookFlightRequestPassengers passengers = new BookFlightRequestPassengers();
- passengers.setUsername("john");
+ Passengers_type0 passengers = new Passengers_type0();
+ passengers.addPassengersChoice(createPassenger("john"));
bookFlightRequest.setPassengers(passengers);
- Ticket ticket = airline.bookFlight(bookFlightRequest);
+ BookFlightResponse bookFlightResponse = airline.bookFlight(bookFlightRequest);
+ Ticket ticket = bookFlightResponse.getBookFlightResponse();
writeTicket(ticket);
}
}
private static void writeTicket(Ticket ticket) {
-
System.out.println("Ticket " + ticket.getId());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("Ticket issue date:\t" + dateFormat.format(ticket.getIssueDate()));
- for (int i = 0; i < ticket.getPassengers().length; i++) {
- writeName(ticket.getPassengers()[i]);
+ Name[] passengers = ticket.getPassengers().getPassenger();
+ for (Name passenger : passengers) {
+ writeName(passenger);
}
writeFlight(ticket.getFlight());
}
@@ -103,4 +109,18 @@ public class AxisMain {
System.out.println("\t" + flight.getTo().getCity());
}
+ private static AirportCode createAirportCode(String code) {
+ AirportCode airportCode = new AirportCode();
+ airportCode.setAirportCode(code);
+ return airportCode;
+ }
+
+ private static PassengersChoice createPassenger(String username) {
+ PassengersChoice passenger = new PassengersChoice();
+ FrequentFlyerUsername frequentFlyerUsername = new FrequentFlyerUsername();
+ frequentFlyerUsername.setFrequentFlyerUsername(username);
+ passenger.setUsername(frequentFlyerUsername);
+ return passenger;
+ }
+
}
diff --git a/airline/client/axis1/src/main/resources/log4j.properties b/airline/client/axis/src/main/resources/log4j.properties
similarity index 100%
rename from airline/client/axis1/src/main/resources/log4j.properties
rename to airline/client/axis/src/main/resources/log4j.properties
diff --git a/airline/client/axis1/pom.xml b/airline/client/axis1/pom.xml
deleted file mode 100644
index ed373e9..0000000
--- a/airline/client/axis1/pom.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
- 4.0.0
-
- org.springframework.ws
- spring-ws-samples
- 2.1.0-SNAPSHOT
- ../../../pom.xml
-
- airline-client-axis1
- Spring Web Services Samples - Airline - Client - Axis1
-
-
- ${project.basedir}/target/generated-sources/axis
- ${project.basedir}/target/classes
- ${project.basedir}/../airline.wsdl
-
-
-
-
- axis
- axis
-
-
- org.apache.axis
- axis-jaxrpc
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-antrun-plugin
-
-
- axis
- axis
- ${axis.version}
-
-
- axis
- axis-ant
- ${axis.version}
-
-
-
-
- generate-sources
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- run
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
-
-
- add-source
- process-sources
-
- add-source
-
-
-
- ${sourcesDir}
-
-
-
-
-
-
-
-
-
diff --git a/airline/server/src/main/java/org/springframework/ws/samples/airline/ws/AirlineEndpoint.java b/airline/server/src/main/java/org/springframework/ws/samples/airline/ws/AirlineEndpoint.java
index c275fb9..b4d3fef 100644
--- a/airline/server/src/main/java/org/springframework/ws/samples/airline/ws/AirlineEndpoint.java
+++ b/airline/server/src/main/java/org/springframework/ws/samples/airline/ws/AirlineEndpoint.java
@@ -16,38 +16,52 @@
package org.springframework.ws.samples.airline.ws;
-import static org.springframework.ws.samples.airline.ws.AirlineWebServiceConstants.*;
-
-import jakarta.xml.bind.JAXBElement;
-
-import java.time.LocalDate;
-import java.time.ZoneId;
-import java.time.ZonedDateTime;
-import java.util.ArrayList;
-import java.util.List;
-
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+
+import jakarta.xml.bind.JAXBElement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.ws.samples.airline.domain.FrequentFlyer;
import org.springframework.ws.samples.airline.domain.Passenger;
import org.springframework.ws.samples.airline.domain.ServiceClass;
-import org.springframework.ws.samples.airline.schema.*;
+import org.springframework.ws.samples.airline.schema.BookFlightRequest;
+import org.springframework.ws.samples.airline.schema.GetFlightsResponse;
+import org.springframework.ws.samples.airline.schema.Name;
+import org.springframework.ws.samples.airline.schema.ObjectFactory;
+import org.springframework.ws.samples.airline.schema.Ticket;
import org.springframework.ws.samples.airline.schema.support.SchemaConversionUtils;
import org.springframework.ws.samples.airline.service.AirlineService;
import org.springframework.ws.samples.airline.service.NoSeatAvailableException;
import org.springframework.ws.samples.airline.service.NoSuchFlightException;
import org.springframework.ws.samples.airline.service.NoSuchFrequentFlyerException;
-import org.springframework.ws.server.endpoint.annotation.*;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
+import org.springframework.ws.server.endpoint.annotation.Endpoint;
+import org.springframework.ws.server.endpoint.annotation.Namespace;
+import org.springframework.ws.server.endpoint.annotation.PayloadRoot;
+import org.springframework.ws.server.endpoint.annotation.RequestPayload;
+import org.springframework.ws.server.endpoint.annotation.ResponsePayload;
+import org.springframework.ws.server.endpoint.annotation.XPathParam;
+
+import static org.springframework.ws.samples.airline.ws.AirlineWebServiceConstants.BOOK_FLIGHT_REQUEST;
+import static org.springframework.ws.samples.airline.ws.AirlineWebServiceConstants.GET_FLIGHTS_REQUEST;
+import static org.springframework.ws.samples.airline.ws.AirlineWebServiceConstants.GET_FREQUENT_FLYER_MILEAGE_REQUEST;
+import static org.springframework.ws.samples.airline.ws.AirlineWebServiceConstants.GET_FREQUENT_FLYER_MILEAGE_RESPONSE;
+import static org.springframework.ws.samples.airline.ws.AirlineWebServiceConstants.MESSAGES_NAMESPACE;
/**
* Endpoint that handles the Airline Web Service messages using a combination of JAXB2
@@ -60,6 +74,8 @@ public class AirlineEndpoint {
private static final Logger logger = LoggerFactory.getLogger(AirlineEndpoint.class);
+ private static final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd[XXX][X]");
+
private final ObjectFactory objectFactory = new ObjectFactory();
private final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
@@ -91,7 +107,8 @@ public class AirlineEndpoint {
logger.debug("Received GetFlightsRequest '" + from + "' to '" + to + "' on " + departureDateString);
}
- ZonedDateTime departureDate = LocalDate.parse(departureDateString).atStartOfDay(ZoneId.systemDefault());
+ ZonedDateTime departureDate = LocalDate.parse(departureDateString, dateFormatter)
+ .atStartOfDay(ZoneId.systemDefault());
ServiceClass serviceClass = null;
if (StringUtils.hasLength(serviceClassString)) {
diff --git a/pom.xml b/pom.xml
index 1eac4d8..6735d47 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,8 @@
${project.basedir}/target/classes
${project.basedir}/airline/client/airline.wsdl
- 1.4
+ 2.0.0
+ 1.7.9
3.2.0
0.15.0
1.2.0
@@ -46,7 +47,7 @@
- airline/client/axis1
+ airline/client/axis
airline/client/jax-ws
airline/client/jms
airline/client/saaj
@@ -62,11 +63,6 @@
-
- axis
- axis
- ${axis.version}
-
com.sun.xml.ws
jaxws-tools
@@ -83,8 +79,18 @@
${jaxen.version}
- org.apache.axis
- axis-jaxrpc
+ org.apache.axis2
+ axis2-adb
+ ${axis.version}
+
+
+ org.apache.axis2
+ axis2-transport-local
+ ${axis.version}
+
+
+ org.apache.axis2
+ axis2-transport-http
${axis.version}
@@ -118,6 +124,11 @@
jaxws-maven-plugin
${jaxws-maven-plugin.version}
+
+ org.apache.axis2
+ axis2-wsdl2code-maven-plugin
+ ${axis2-wsdl2code-maven-plugin}
+
org.codehaus.mojo
jaxb2-maven-plugin