使用JDK原生发布WebService,十分方便快捷. 附上项目工程代码 WebService使用JDK发布... 接口 @WebService这个注解,说明该接口是一个WebService接口 package com.jdk.ws;import javax.jws.WebService;@WebServicepubl
使用JDK原生发布WebService,十分方便快捷.
附上项目工程代码
WebService使用JDK发布...
接口
@WebService这个注解,说明该接口是一个WebService接口
package com.jdk.ws; import javax.jws.WebService; @WebService public interface HelloService { public String sayHello(String name); }
实现方法
package com.jdk.ws; import javax.jws.WebService; @WebService public class HelloServiceImpl implements HelloService { public String sayHello(String name) { return "hello : "+name; } }
main方法
public class WS_JDK_Main { /** * 使用JDK提供的javax.xml.ws.Endpoint即可发布WebService. * 不过需要提供一个WebService的地址(address). * @param args */ public static void main(String[] args) { String address = "http://localhost:8080/jdkws/HelloSerice"; HelloService helloService = new HelloServiceImpl(); Endpoint.publish(address, helloService); System.out.println("WebService is start~ address : "+address); } }
然后直接run运行就好...
看到这个wsdl文档 , 就说明你的Server端已经发布成功,可以被其他客户端调用了...
然后我们编写客户端调用代码.
首先,使用jdk自带的工具,根据wsdl文档,生成代码.
我们先创建一个空的Client工程项目.
然后获取src的路径.
在cmd命令行中,进入这个目录.
接下来,调用JDK工具,生成客户端代码. 对了,忘记说了.. 一定要配置好,JDK环境变量!!!!!
而且 , 发布的服务端程序,不要关闭...让它一直跑着...
现在我们执行命令...
后面的那个url就是浏览器中发布的地址.
接着我们去Client工程的src下刷新一下.. 会发现有自动生成的代码在里面.
提示 : 有时候自动生成的代码,会报错,这个大部分情况是JDK版本引起的(至少我遇到的都是JDK版本问题)..尝试,切换JDK版本试试...
这个是自动生成的代码
然后我们编写一个Test方法 , 去调用服务端.
客户端代码
package com.jdk.client; import com.jdk.ws.HelloServiceImpl; import com.jdk.ws.HelloServiceImplService; public class TestClient { public static void main(String[] args) { HelloServiceImplService helloServiceImpl = new HelloServiceImplService(); HelloServiceImpl helloService = helloServiceImpl.getHelloServiceImplPort(); String responseStr = helloService.sayHello("CYX"); System.out.println(responseStr); } }
run运行一下...
下面这个图 , 对应了WSDL文档和客户端调用代码之间的关系.
OK...JDK发布WebService结束...