Creating a Simple Web Service and Client with JAX-WS
发布服务
package cn.zno.service.impl; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class HelloServiceImpl { public String say(String name) { System.out.println(name); return "invoked"; } public static void main(String[] args) { Endpoint.publish("http://localhost:8080/HelloServic",new HelloServiceImpl()); } }
查看wsdl
http://localhost:8080/HelloServic?wsdl
生成客户端代码
cmd 运行 %JAVA_HOME%/bin/wsimport.exe 脚本
E:>wsimport -keep http://localhost:8080/HelloServic?wsdl parsing WSDL... Generating code... Compiling code... E:>
目录
E:. └─cn └─zno └─service └─impl HelloServiceImpl.class HelloServiceImpl.java HelloServiceImplService.class HelloServiceImplService.java ObjectFactory.class ObjectFactory.java package-info.class package-info.java Say.class Say.java SayResponse.class SayResponse.java
创建客户端
import java.net.MalformedURLException; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.Service; import cn.zno.service.impl.HelloServiceImpl; public class Test { public static void main(String[] args) throws MalformedURLException { // String namespaceURI, String localPart QName qname = new QName("http://impl.service.zno.cn/","HelloServiceImplService"); Service service = Service.create(new URL("http://localhost:8080/HelloServic?wsdl"),qname); HelloServiceImpl serv = service.getPort(HelloServiceImpl.class); String response = serv.say("hi"); System.out.println(response); } }
测试
启动服务器
运行客户端
1.服务器Console 打印:hi
2.客户端Console 打印:invoked