整理下WebService的使用方法,理论就不说了,一搜一大堆,主要是快捷的搭建和使用。
这里使用的是JDK1.6.0_45
1、服务端
创建一个Java工程,首先编写一个接口HelloWebService 使用注解
package com.ws;
import javax.jws.WebService;
@WebService
public interface HelloWebService {
public String sayHello();
}
接口的实现
package com.ws;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class HelloWebServiceImpl implements HelloWebService {
@WebMethod
public String sayHello() {
return "Hello, WebService";
}
}
然后是Main方法
package com.main;
import javax.xml.ws.Endpoint;
import com.ws.HelloWebServiceImpl;
public class Test {
public static void main(String[] args) {
Endpoint.publish("http://localhost:8080/service/helloWebService",
new HelloWebServiceImpl());
}
}
在浏览器中访问 http://localhost:8080/service/helloWebService?wsdl
<?xml version="1.0" encoding="UTF-8" ?>
- <!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6.
-->
- <!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6.
-->
- <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ws.com/" name="HelloWebServiceImplService">
- <types>
- <xsd:schema>
<xsd:import namespace="http://ws.com/" schemaLocation="http://localhost:8080/service/helloWebService?xsd=1" />
</xsd:schema>
</types>
- <message name="sayHello">
<part name="parameters" element="tns:sayHello" />
</message>
- <message name="sayHelloResponse">
<part name="parameters" element="tns:sayHelloResponse" />
</message>
- <portType name="HelloWebServiceImpl">
- <operation name="sayHello">
<input message="tns:sayHello" />
<output message="tns:sayHelloResponse" />
</operation>
</portType>
- <binding name="HelloWebServiceImplPortBinding" type="tns:HelloWebServiceImpl">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
- <operation name="sayHello">
<soap:operation soapAction="" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
</binding>
- <service name="HelloWebServiceImplService">
- <port name="HelloWebServiceImplPort" binding="tns:HelloWebServiceImplPortBinding">
<soap:address location="http://localhost:8080/service/helloWebService" />
</port>
</service>
</definitions>
2、客户端使用JDK的bin目录下的wsimport创建需要的文件,请配置好JAVA_HOME,CLASS_PATH
JAVA_HOME: D:\Program Files\Java\jdk1.6.0_45
CLASS_PATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
在命令行中输入
wsimport -verbose -p com.ws -keep http://localhost:8080/service/helloWebService?wsdl
在C:\Documents and Settings\用户名 目录中找到com/ws下的所有文件创建一个Java工程将com目录下的所有文件拷贝进去,创建一个测试类
package com.main;
import com.ws.HelloWebServiceImpl;
import com.ws.HelloWebServiceImplService;
public class WsClient {
public static void main(String[] args) {
HelloWebServiceImplService uisis = new HelloWebServiceImplService();
HelloWebServiceImpl uis = uisis.getHelloWebServiceImplPort();
System.out.println(uis.sayHello());
}
}
返回结果为Hello, WebService