WebService(3)_JDK发布WebService

来源:互联网 发布:淘宝买保险可靠吗 编辑:程序博客网 时间:2024/05/01 21:35

使用JDK原生发布WebService,十分方便快捷.

附上项目工程代码

WebService使用JDK发布...


接口

@WebService这个注解,说明该接口是一个WebService接口

package com.jdk.ws;import javax.jws.WebService;@WebServicepublic interface HelloService {public String sayHello(String name);}

实现方法

package com.jdk.ws;import javax.jws.WebService;@WebServicepublic 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运行就好...



然后打开浏览器 , 输入自己设置的address地址,末尾追加"?wsdl"



看到这个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结束...


0 0
原创粉丝点击