1、服务:
注意:确保端口不冲突!
2、客户端(一个接口、一个service的实现类和一个启动类):
接口:
Service实现类:
启动类:
先运行服务,然后启动客户端,ok!
package
mustang.webservice.demo2;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.Endpoint;
@WebService(name = " Calculator " , targetNamespace = " http://java.webservice.com/calculator " )
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class Calculator {
@WebMethod
public int add( int a, int b) {
return a + b;
}
public static void main(String[] args){
// create and publish an endpoint
Endpoint.publish( " http://localhost:8080/calculator " , new Calculator());
}
}
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.Endpoint;
@WebService(name = " Calculator " , targetNamespace = " http://java.webservice.com/calculator " )
@SOAPBinding(style = SOAPBinding.Style.RPC)
public class Calculator {
@WebMethod
public int add( int a, int b) {
return a + b;
}
public static void main(String[] args){
// create and publish an endpoint
Endpoint.publish( " http://localhost:8080/calculator " , new Calculator());
}
}
2、客户端(一个接口、一个service的实现类和一个启动类):
接口:
package
mustang.webservice.client.demo2;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
/**
* This class was generated by the JAXWS SI. JAX-WS RI 2.0_02-b08-fcs Generated
* source version: 2.0
*
*/
@WebService(name = " Calculator " , targetNamespace = " http://java.webservice.com/calculator " )
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface Calculator {
@WebMethod
@WebResult(partName = " return " )
public int add(@WebParam(name = " arg0 " , partName = " arg0 " ) int arg0, @WebParam(name = " arg1 " , partName = " arg1 " ) int arg1);
}
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
/**
* This class was generated by the JAXWS SI. JAX-WS RI 2.0_02-b08-fcs Generated
* source version: 2.0
*
*/
@WebService(name = " Calculator " , targetNamespace = " http://java.webservice.com/calculator " )
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface Calculator {
@WebMethod
@WebResult(partName = " return " )
public int add(@WebParam(name = " arg0 " , partName = " arg0 " ) int arg0, @WebParam(name = " arg1 " , partName = " arg1 " ) int arg1);
}
Service实现类:
package
mustang.webservice.client.demo2;
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;
/**
* This class was generated by the JAXWS SI. JAX-WS RI 2.0_02-b08-fcs Generated
* source version: 2.0
*/
@WebServiceClient(name = " CalculatorService " , targetNamespace = " http://java.webservice.com/calculator " , wsdlLocation = " http://localhost:8080/calculator?wsdl " )
public class CalculatorService extends Service {
private final static URL HELLOSERVICE_WSDL_LOCATION;
static {
URL url = null ;
try {
url = new URL( " http://localhost:8080/calculator?wsdl " );
} catch (MalformedURLException e) {
e.printStackTrace();
}
HELLOSERVICE_WSDL_LOCATION = url;
}
public CalculatorService(URL wsdlLocation, QName serviceName) {
super (wsdlLocation, serviceName);
}
public CalculatorService() {
super (HELLOSERVICE_WSDL_LOCATION, new QName(
" http://java.webservice.com/calculator " , " CalculatorService " ));
}
/**
*
* @return
*/
@WebEndpoint(name = " CalculatorPort " )
public Calculator getCalculatorPort() {
return (Calculator) super .getPort( new QName(
" http://java.webservice.com/calculator " , " CalculatorPort " ),
Calculator. class );
}
}
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;
/**
* This class was generated by the JAXWS SI. JAX-WS RI 2.0_02-b08-fcs Generated
* source version: 2.0
*/
@WebServiceClient(name = " CalculatorService " , targetNamespace = " http://java.webservice.com/calculator " , wsdlLocation = " http://localhost:8080/calculator?wsdl " )
public class CalculatorService extends Service {
private final static URL HELLOSERVICE_WSDL_LOCATION;
static {
URL url = null ;
try {
url = new URL( " http://localhost:8080/calculator?wsdl " );
} catch (MalformedURLException e) {
e.printStackTrace();
}
HELLOSERVICE_WSDL_LOCATION = url;
}
public CalculatorService(URL wsdlLocation, QName serviceName) {
super (wsdlLocation, serviceName);
}
public CalculatorService() {
super (HELLOSERVICE_WSDL_LOCATION, new QName(
" http://java.webservice.com/calculator " , " CalculatorService " ));
}
/**
*
* @return
*/
@WebEndpoint(name = " CalculatorPort " )
public Calculator getCalculatorPort() {
return (Calculator) super .getPort( new QName(
" http://java.webservice.com/calculator " , " CalculatorPort " ),
Calculator. class );
}
}
启动类:
package
mustang.webservice.client.demo2;
public class CalculatorClient {
public static void main(String args[]){
/**
* Instantiate the generated Service
*/
CalculatorService service = new CalculatorService();
/**
* Get the port using port getter method generated in CaculatorService
*/
Calculator calculatorProxy = service.getCalculatorPort();
/**
* Invoke the remote method
*/
int result = calculatorProxy.add( 10 , 20 );
System.out.println( " Sum of (10+20) = " + result);
}
}
public class CalculatorClient {
public static void main(String args[]){
/**
* Instantiate the generated Service
*/
CalculatorService service = new CalculatorService();
/**
* Get the port using port getter method generated in CaculatorService
*/
Calculator calculatorProxy = service.getCalculatorPort();
/**
* Invoke the remote method
*/
int result = calculatorProxy.add( 10 , 20 );
System.out.println( " Sum of (10+20) = " + result);
}
}
先运行服务,然后启动客户端,ok!