建立Java项目实现服务
package cn.itcast.ws;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
/**
* WebService
* 将JAVA类标记为实现Web Service。或者将JAVA接口标记定义为Web Service接口
* @author HJW
*
*/
@WebService
public class HelloService {
public String sayHello(String name){
return "hello" + name;
}
/**
* WebMethod() 指定该方法不公开
*/
@WebMethod(exclude = true)
public String sayHello2(String name) {
return "hello2" + name;
}
public static void main(String[] args) {
/**
* publish()参数说明
* 1:服务器地址
* 2:服务实现者
*/
Endpoint.publish("http://192.168.1.104:5678/hello", new HelloService());
System.out.println("发布成功");
}
}
注意:
类中必须至少有一个公布的方法,否则发布出错
访问wsdl说明文档
链接:http://192.168.1.104:5678/hello?wsdl
192.168.1.104为本机IP地址。也可用localhost
必须指定端口号
不加?wsdl访问不到
WSDL文档说明
<service name="HelloServiceService">
<port name="HelloServicePort" binding="tns:HelloServicePortBinding">
<soap:address location="http://192.168.1.104:5678/hello"/>
</port>
</service>
<service name="HelloServiceService"> 为服务名
<port name="HelloServicePort">
location 为服务地址
作用:与下方的客户端调用联系
通过WSDL文档生成代码
cmd 命令: wsimport -s . http://192.168.1.104:5678/hello?wsdl
生成与服务端包结构一样的java文件。可直接使用
如不想与服务端包结构一样,可在命令 . 后面加上: -p 包结构
package cn.itcast.ws;
/**
* 通过wsimport 解析WSDL生成客户端代码调用WebService服务
* @author HJW
*
*/
public class App {
public static void main(String[] args) {
HelloServiceService hss = new HelloServiceService();
HelloService hs = hss.getHelloServicePort();
String str = hs.sayHello("HJW");
System.out.println(str);
}
}
实现客户端的调用