# 
        JAX-WS (SOAP) Client in Spring
    
This tutorial shows you how to create a JAX-WS (SOAP) web service client.
SOAP is an XML specification for sending messages over a network. SOAP messages are independent of any operating system and can use a variety of communication protocols including HTTP and SMTP.
JAX-WS is a framework that simplifies using SOAP. It is part of standard Java.
In order to create a SOAP web service in Spring Consumer (Client), you have to create a simple Spring application and configure it to use Maven.
Here is the pom.xml file dependencies:
 
    
Now we have to create the following classes:
package com.example.ws;
 
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
 
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
 
@WebService(serviceName="MyServiceA_WSService", targetNamespace="http://ws.example.com/")
@Component
public interface IMyServiceA_WsCall {
 
    @WebMethod
    public String addNumbers(
            @WebParam(name = "value1") int value1,
            @WebParam(name = "value2") int value2); 
}package com.example.ws;
 
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
 
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
 
@WebService(serviceName="MyServiceA_WSService", targetNamespace="http://ws.example.com/")
@Component
public interface IMyServiceA_WsCall {
 
    @WebMethod
    public String addNumbers(
            @WebParam(name = "value1") int value1,
            @WebParam(name = "value2") int value2); 
}package com.example.main;
 
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 
import com.example.config.SpringContextConfig;
import com.example.ws.IMyServiceA_WsCall;
 
//Main JAX-WS Client
public class Main {
 
    public static void main (String [] args) {
         
          System.out.println("Start ...");
           
          AnnotationConfigApplicationContext context 
            = new AnnotationConfigApplicationContext(SpringContextConfig.class);
           
          IMyServiceA_WsCall myServiceA_WsCall = 
                  context.getBean(IMyServiceA_WsCall.class);
           
          System.out.println(myServiceA_WsCall.addNumbers(10, 11));
         
          context.close();
    }
}When I run the application I receive:
 
    
As you can see the context is not closed and the application is still running.
 
                                