BAEL-3988: Calling a SOAP web service in Java (#9166)
This commit is contained in:
parent
a5d8f4d54e
commit
17d9e00dc3
@ -242,6 +242,29 @@
|
|||||||
</lifecycleMappingMetadata>
|
</lifecycleMappingMetadata>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<!-- jax-ws maven plugin-->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>jaxws-maven-plugin</artifactId>
|
||||||
|
<version>2.6</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>wsimport-from-jdk</id>
|
||||||
|
<goals>
|
||||||
|
<goal>wsimport</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<wsdlDirectory>src/main/resources</wsdlDirectory>
|
||||||
|
<wsdlFiles>
|
||||||
|
<wsdlFile>country.wsdl</wsdlFile>
|
||||||
|
</wsdlFiles>
|
||||||
|
<keep>true</keep>
|
||||||
|
<packageName>com.baeldung.soap.ws.client.generated</packageName>
|
||||||
|
<sourceDestDir>src/main/java</sourceDestDir>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</pluginManagement>
|
</pluginManagement>
|
||||||
</build>
|
</build>
|
||||||
|
@ -0,0 +1,129 @@
|
|||||||
|
|
||||||
|
package com.baeldung.soap.ws.client.generated;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlAccessType;
|
||||||
|
import javax.xml.bind.annotation.XmlAccessorType;
|
||||||
|
import javax.xml.bind.annotation.XmlSchemaType;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>Java class for country complex type.
|
||||||
|
*
|
||||||
|
* <p>The following schema fragment specifies the expected content contained within this class.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* <complexType name="country">
|
||||||
|
* <complexContent>
|
||||||
|
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||||
|
* <sequence>
|
||||||
|
* <element name="capital" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||||
|
* <element name="currency" type="{http://server.ws.soap.baeldung.com/}currency" minOccurs="0"/>
|
||||||
|
* <element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||||
|
* <element name="population" type="{http://www.w3.org/2001/XMLSchema}int"/>
|
||||||
|
* </sequence>
|
||||||
|
* </restriction>
|
||||||
|
* </complexContent>
|
||||||
|
* </complexType>
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
@XmlType(name = "country", propOrder = { "capital", "currency", "name", "population" })
|
||||||
|
public class Country {
|
||||||
|
|
||||||
|
protected String capital;
|
||||||
|
@XmlSchemaType(name = "string")
|
||||||
|
protected Currency currency;
|
||||||
|
protected String name;
|
||||||
|
protected int population;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the capital property.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* possible object is
|
||||||
|
* {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getCapital() {
|
||||||
|
return capital;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the capital property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is
|
||||||
|
* {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setCapital(String value) {
|
||||||
|
this.capital = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the currency property.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* possible object is
|
||||||
|
* {@link Currency }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public Currency getCurrency() {
|
||||||
|
return currency;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the currency property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is
|
||||||
|
* {@link Currency }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setCurrency(Currency value) {
|
||||||
|
this.currency = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the name property.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* possible object is
|
||||||
|
* {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the name property.
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* allowed object is
|
||||||
|
* {@link String }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setName(String value) {
|
||||||
|
this.name = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value of the population property.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public int getPopulation() {
|
||||||
|
return population;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value of the population property.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public void setPopulation(int value) {
|
||||||
|
this.population = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
package com.baeldung.soap.ws.client.generated;
|
||||||
|
|
||||||
|
import javax.jws.WebMethod;
|
||||||
|
import javax.jws.WebParam;
|
||||||
|
import javax.jws.WebResult;
|
||||||
|
import javax.jws.WebService;
|
||||||
|
import javax.jws.soap.SOAPBinding;
|
||||||
|
import javax.xml.bind.annotation.XmlSeeAlso;
|
||||||
|
import javax.xml.ws.Action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class was generated by the JAX-WS RI.
|
||||||
|
* JAX-WS RI 2.3.2
|
||||||
|
* Generated source version: 2.2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@WebService(name = "CountryService", targetNamespace = "http://server.ws.soap.baeldung.com/")
|
||||||
|
@SOAPBinding(style = SOAPBinding.Style.RPC)
|
||||||
|
@XmlSeeAlso({ ObjectFactory.class })
|
||||||
|
public interface CountryService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param arg0
|
||||||
|
* @return
|
||||||
|
* returns com.baeldung.soap.ws.client.generated.Country
|
||||||
|
*/
|
||||||
|
@WebMethod
|
||||||
|
@WebResult(partName = "return")
|
||||||
|
@Action(input = "http://server.ws.soap.baeldung.com/CountryService/findByNameRequest", output = "http://server.ws.soap.baeldung.com/CountryService/findByNameResponse")
|
||||||
|
public Country findByName(@WebParam(name = "arg0", partName = "arg0") String arg0);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,91 @@
|
|||||||
|
|
||||||
|
package com.baeldung.soap.ws.client.generated;
|
||||||
|
|
||||||
|
import java.net.MalformedURLException;
|
||||||
|
import java.net.URL;
|
||||||
|
import javax.xml.namespace.QName;
|
||||||
|
import javax.xml.ws.Service;
|
||||||
|
import javax.xml.ws.WebEndpoint;
|
||||||
|
import javax.xml.ws.WebServiceClient;
|
||||||
|
import javax.xml.ws.WebServiceException;
|
||||||
|
import javax.xml.ws.WebServiceFeature;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class was generated by the JAX-WS RI.
|
||||||
|
* JAX-WS RI 2.3.2
|
||||||
|
* Generated source version: 2.2
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@WebServiceClient(name = "CountryServiceImplService", targetNamespace = "http://server.ws.soap.baeldung.com/", wsdlLocation = "file:src/main/resources/country.wsdl")
|
||||||
|
public class CountryServiceImplService extends Service {
|
||||||
|
|
||||||
|
private final static URL COUNTRYSERVICEIMPLSERVICE_WSDL_LOCATION;
|
||||||
|
private final static WebServiceException COUNTRYSERVICEIMPLSERVICE_EXCEPTION;
|
||||||
|
private final static QName COUNTRYSERVICEIMPLSERVICE_QNAME = new QName("http://server.ws.soap.baeldung.com/", "CountryServiceImplService");
|
||||||
|
|
||||||
|
static {
|
||||||
|
URL url = null;
|
||||||
|
WebServiceException e = null;
|
||||||
|
try {
|
||||||
|
url = new URL("file:src/main/resources/country.wsdl");
|
||||||
|
} catch (MalformedURLException ex) {
|
||||||
|
e = new WebServiceException(ex);
|
||||||
|
}
|
||||||
|
COUNTRYSERVICEIMPLSERVICE_WSDL_LOCATION = url;
|
||||||
|
COUNTRYSERVICEIMPLSERVICE_EXCEPTION = e;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CountryServiceImplService() {
|
||||||
|
super(__getWsdlLocation(), COUNTRYSERVICEIMPLSERVICE_QNAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CountryServiceImplService(WebServiceFeature... features) {
|
||||||
|
super(__getWsdlLocation(), COUNTRYSERVICEIMPLSERVICE_QNAME, features);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CountryServiceImplService(URL wsdlLocation) {
|
||||||
|
super(wsdlLocation, COUNTRYSERVICEIMPLSERVICE_QNAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CountryServiceImplService(URL wsdlLocation, WebServiceFeature... features) {
|
||||||
|
super(wsdlLocation, COUNTRYSERVICEIMPLSERVICE_QNAME, features);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CountryServiceImplService(URL wsdlLocation, QName serviceName) {
|
||||||
|
super(wsdlLocation, serviceName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CountryServiceImplService(URL wsdlLocation, QName serviceName, WebServiceFeature... features) {
|
||||||
|
super(wsdlLocation, serviceName, features);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* returns CountryService
|
||||||
|
*/
|
||||||
|
@WebEndpoint(name = "CountryServiceImplPort")
|
||||||
|
public CountryService getCountryServiceImplPort() {
|
||||||
|
return super.getPort(new QName("http://server.ws.soap.baeldung.com/", "CountryServiceImplPort"), CountryService.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param features
|
||||||
|
* A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values.
|
||||||
|
* @return
|
||||||
|
* returns CountryService
|
||||||
|
*/
|
||||||
|
@WebEndpoint(name = "CountryServiceImplPort")
|
||||||
|
public CountryService getCountryServiceImplPort(WebServiceFeature... features) {
|
||||||
|
return super.getPort(new QName("http://server.ws.soap.baeldung.com/", "CountryServiceImplPort"), CountryService.class, features);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static URL __getWsdlLocation() {
|
||||||
|
if (COUNTRYSERVICEIMPLSERVICE_EXCEPTION != null) {
|
||||||
|
throw COUNTRYSERVICEIMPLSERVICE_EXCEPTION;
|
||||||
|
}
|
||||||
|
return COUNTRYSERVICEIMPLSERVICE_WSDL_LOCATION;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
package com.baeldung.soap.ws.client.generated;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlEnum;
|
||||||
|
import javax.xml.bind.annotation.XmlType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>Java class for currency.
|
||||||
|
*
|
||||||
|
* <p>The following schema fragment specifies the expected content contained within this class.
|
||||||
|
* <p>
|
||||||
|
* <pre>
|
||||||
|
* <simpleType name="currency">
|
||||||
|
* <restriction base="{http://www.w3.org/2001/XMLSchema}string">
|
||||||
|
* <enumeration value="EUR"/>
|
||||||
|
* <enumeration value="INR"/>
|
||||||
|
* <enumeration value="USD"/>
|
||||||
|
* </restriction>
|
||||||
|
* </simpleType>
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlType(name = "currency")
|
||||||
|
@XmlEnum
|
||||||
|
public enum Currency {
|
||||||
|
|
||||||
|
EUR, INR, USD;
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return name();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Currency fromValue(String v) {
|
||||||
|
return valueOf(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
package com.baeldung.soap.ws.client.generated;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.XmlRegistry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This object contains factory methods for each
|
||||||
|
* Java content interface and Java element interface
|
||||||
|
* generated in the com.baeldung.soap.ws.client.generated package.
|
||||||
|
* <p>An ObjectFactory allows you to programatically
|
||||||
|
* construct new instances of the Java representation
|
||||||
|
* for XML content. The Java representation of XML
|
||||||
|
* content can consist of schema derived interfaces
|
||||||
|
* and classes representing the binding of schema
|
||||||
|
* type definitions, element declarations and model
|
||||||
|
* groups. Factory methods for each of these are
|
||||||
|
* provided in this class.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlRegistry
|
||||||
|
public class ObjectFactory {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.baeldung.soap.ws.client.generated
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public ObjectFactory() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an instance of {@link Country }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public Country createCountry() {
|
||||||
|
return new Country();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
@javax.xml.bind.annotation.XmlSchema(namespace = "http://server.ws.soap.baeldung.com/", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
|
||||||
|
package com.baeldung.soap.ws.client.generated;
|
41
jee-7/src/main/java/com/baeldung/soap/ws/server/Country.java
Normal file
41
jee-7/src/main/java/com/baeldung/soap/ws/server/Country.java
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
package com.baeldung.soap.ws.server;
|
||||||
|
|
||||||
|
public class Country {
|
||||||
|
protected String name;
|
||||||
|
protected int population;
|
||||||
|
protected String capital;
|
||||||
|
protected Currency currency;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPopulation() {
|
||||||
|
return population;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPopulation(int population) {
|
||||||
|
this.population = population;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCapital() {
|
||||||
|
return capital;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCapital(String capital) {
|
||||||
|
this.capital = capital;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Currency getCurrency() {
|
||||||
|
return currency;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCurrency(Currency currency) {
|
||||||
|
this.currency = currency;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
package com.baeldung.soap.ws.server;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class CountryRepository {
|
||||||
|
|
||||||
|
private static final Map<String, Country> countries = new HashMap<>();
|
||||||
|
|
||||||
|
{
|
||||||
|
initData();
|
||||||
|
}
|
||||||
|
|
||||||
|
private final static void initData() {
|
||||||
|
Country usa = new Country();
|
||||||
|
usa.setName("USA");
|
||||||
|
usa.setCapital("Washington D.C.");
|
||||||
|
usa.setCurrency(Currency.USD);
|
||||||
|
usa.setPopulation(323947000);
|
||||||
|
|
||||||
|
countries.put(usa.getName(), usa);
|
||||||
|
|
||||||
|
Country india = new Country();
|
||||||
|
india.setName("India");
|
||||||
|
india.setCapital("New Delhi");
|
||||||
|
india.setCurrency(Currency.INR);
|
||||||
|
india.setPopulation(1295210000);
|
||||||
|
|
||||||
|
countries.put(india.getName(), india);
|
||||||
|
|
||||||
|
Country france = new Country();
|
||||||
|
france.setName("France");
|
||||||
|
france.setCapital("Paris");
|
||||||
|
france.setCurrency(Currency.EUR);
|
||||||
|
france.setPopulation(66710000);
|
||||||
|
|
||||||
|
countries.put(france.getName(), france);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Country findCountry(String name) {
|
||||||
|
return countries.get(name);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.baeldung.soap.ws.server;
|
||||||
|
|
||||||
|
import javax.jws.WebMethod;
|
||||||
|
import javax.jws.WebService;
|
||||||
|
import javax.jws.soap.SOAPBinding;
|
||||||
|
import javax.jws.soap.SOAPBinding.Style;
|
||||||
|
|
||||||
|
@WebService
|
||||||
|
@SOAPBinding(style=Style.RPC)
|
||||||
|
public interface CountryService {
|
||||||
|
|
||||||
|
@WebMethod
|
||||||
|
Country findByName(String name);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.baeldung.soap.ws.server;
|
||||||
|
|
||||||
|
import javax.jws.WebService;
|
||||||
|
|
||||||
|
@WebService(endpointInterface = "com.baeldung.soap.ws.server.CountryService")
|
||||||
|
public class CountryServiceImpl implements CountryService {
|
||||||
|
|
||||||
|
private CountryRepository countryRepository = new CountryRepository();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Country findByName(String name) {
|
||||||
|
return countryRepository.findCountry(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.baeldung.soap.ws.server;
|
||||||
|
|
||||||
|
import javax.xml.ws.Endpoint;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
||||||
|
public class CountryServicePublisher {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(CountryServicePublisher.class);
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Endpoint endpoint = Endpoint.create(new CountryServiceImpl());
|
||||||
|
endpoint.publish("http://localhost:8888/ws/country");
|
||||||
|
|
||||||
|
logger.info("Country web service ready to consume requests!");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.baeldung.soap.ws.server;
|
||||||
|
|
||||||
|
public enum Currency {
|
||||||
|
|
||||||
|
EUR, INR, USD;
|
||||||
|
|
||||||
|
public String value() {
|
||||||
|
return name();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Currency fromValue(String v) {
|
||||||
|
return valueOf(v);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
40
jee-7/src/main/resources/country.wsdl
Normal file
40
jee-7/src/main/resources/country.wsdl
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e. --><!-- Generated by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e. -->
|
||||||
|
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy"
|
||||||
|
xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||||
|
xmlns:tns="http://server.ws.soap.baeldung.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/"
|
||||||
|
targetNamespace="http://server.ws.soap.baeldung.com/" name="CountryServiceImplService">
|
||||||
|
<types>
|
||||||
|
<xsd:schema>
|
||||||
|
<xsd:import namespace="http://server.ws.soap.baeldung.com/" schemaLocation="http://localhost:8888/ws/country?xsd=1"></xsd:import>
|
||||||
|
</xsd:schema>
|
||||||
|
</types>
|
||||||
|
<message name="findByName">
|
||||||
|
<part name="arg0" type="xsd:string"></part>
|
||||||
|
</message>
|
||||||
|
<message name="findByNameResponse">
|
||||||
|
<part name="return" type="tns:country"></part>
|
||||||
|
</message>
|
||||||
|
<portType name="CountryService">
|
||||||
|
<operation name="findByName">
|
||||||
|
<input wsam:Action="http://server.ws.soap.baeldung.com/CountryService/findByNameRequest" message="tns:findByName"></input>
|
||||||
|
<output wsam:Action="http://server.ws.soap.baeldung.com/CountryService/findByNameResponse" message="tns:findByNameResponse"></output>
|
||||||
|
</operation>
|
||||||
|
</portType>
|
||||||
|
<binding name="CountryServiceImplPortBinding" type="tns:CountryService">
|
||||||
|
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"></soap:binding>
|
||||||
|
<operation name="findByName">
|
||||||
|
<soap:operation soapAction=""></soap:operation>
|
||||||
|
<input>
|
||||||
|
<soap:body use="literal" namespace="http://server.ws.soap.baeldung.com/"></soap:body>
|
||||||
|
</input>
|
||||||
|
<output>
|
||||||
|
<soap:body use="literal" namespace="http://server.ws.soap.baeldung.com/"></soap:body>
|
||||||
|
</output>
|
||||||
|
</operation>
|
||||||
|
</binding>
|
||||||
|
<service name="CountryServiceImplService">
|
||||||
|
<port name="CountryServiceImplPort" binding="tns:CountryServiceImplPortBinding">
|
||||||
|
<soap:address location="http://localhost:8888/ws/country"></soap:address>
|
||||||
|
</port>
|
||||||
|
</service>
|
||||||
|
</definitions>
|
21
jee-7/src/main/resources/country.xsd
Normal file
21
jee-7/src/main/resources/country.xsd
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e. -->
|
||||||
|
<xs:schema xmlns:tns="http://server.ws.soap.baeldung.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0"
|
||||||
|
targetNamespace="http://server.ws.soap.baeldung.com/">
|
||||||
|
|
||||||
|
<xs:complexType name="country">
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="capital" type="xs:string" minOccurs="0"></xs:element>
|
||||||
|
<xs:element name="currency" type="tns:currency" minOccurs="0"></xs:element>
|
||||||
|
<xs:element name="name" type="xs:string" minOccurs="0"></xs:element>
|
||||||
|
<xs:element name="population" type="xs:int"></xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:simpleType name="currency">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="EUR"></xs:enumeration>
|
||||||
|
<xs:enumeration value="INR"></xs:enumeration>
|
||||||
|
<xs:enumeration value="USD"></xs:enumeration>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:schema>
|
@ -0,0 +1,39 @@
|
|||||||
|
package com.baeldung.soap.ws.client;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import com.baeldung.soap.ws.client.generated.CountryService;
|
||||||
|
import com.baeldung.soap.ws.client.generated.CountryServiceImplService;
|
||||||
|
import com.baeldung.soap.ws.client.generated.Currency;
|
||||||
|
|
||||||
|
//Ensure that com.baeldung.soap.ws.server.CountryServicePublisher is running before executing this test
|
||||||
|
public class CountryClientLiveTest {
|
||||||
|
|
||||||
|
private static CountryService countryService;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void setup() {
|
||||||
|
CountryServiceImplService service = new CountryServiceImplService();
|
||||||
|
countryService = service.getCountryServiceImplPort();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenCountryService_whenCountryIndia_thenCapitalIsNewDelhi() {
|
||||||
|
assertEquals("New Delhi", countryService.findByName("India").getCapital());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenCountryService_whenCountryFrance_thenPopulationCorrect() {
|
||||||
|
assertEquals(66710000, countryService.findByName("France").getPopulation());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenCountryService_whenCountryUSA_thenCurrencyUSD() {
|
||||||
|
assertEquals(Currency.USD, countryService.findByName("USA").getCurrency());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user