使用jdk开发webService需要注意:jdk版本必须1.6以及1.6以上!
以下webService的组成部分:
server端和client端,通过服务器端(server)webService发布,使用客户端调用。
说明:开发中也许只做server端也许只做client端,以下只是模拟程序。
开发步骤:
1.开发server端:
1.1编写webService编码:
1.1.1创建一个接口(SEI,webService终端接口,该接口方法供client端调用)
/**webService服务器端接口*/ /**接口和接口实现类添加@WebService注解*/ @WebService public interface HelloWebService { /**接口方法添加@WebMethod注解*/ /**该方法最终由客户端调用,参数由客户端调用时传入*/ /**返回的数据返回给客户端*/ /** * @param name 服务器端接收客户端的数据 * @return 服务器端返回给客户的的信息 */ @WebMethod public String sayHello(String name); }
1.1.2定义HelloWebService接口的实现类
/**SEI(服务器端接口)的实现类*/ /**和父接口一样,需要添加@WebService注解*/ @WebService public class HelloWebServiceImpl implements HelloWebService { @Override public String sayHello(String name) { return "Hello: "+name; } }
1.2发布webService,将以上定义暴露出去以便供客户端调用
/**使用Endpoint发布webService*/ public class WebServiceRelease { public static void main(String[] args) { /**address:客户端调用接口地址*/ /**helloWebServiceImpl:接口实现类对象*/ String address = "http://localhost:8080/webService/helloWebService"; HelloWebServiceImpl helloWebServiceImpl = new HelloWebServiceImpl(); Endpoint.publish(address, helloWebServiceImpl); /**如果发布成功打印以下*/ System.out.println("发布成功!"); } }
执行程序:
2.开发client端:
在开发client端之前,我们可以尝试着使用上方发布的路径访问看看,得出以下结果:
一切正常,开始开发client端
2.1借助jdk的wsimort.exe工具生成客户端代码
注意:客户端代码生成到client工程下,跟server端是不一样的工程
2.1.1打开cmd,cd到client工程的src目录下(因为客户端代码要生成到这个路径下),例如我的client工程src路径为:D:\developUtil\workspace\webServiceClient\src,那么就在cmd界面窗口cd D:\developUtil\workspace\webServiceClient\src,按回车,这时src目录为当前路径;
2.1.2接着继续在cmd窗口执行wsimport -keep http://localhost:8080/webService/helloWebService?wsdl,http://localhost:8080/webService/helloWebService?wsdl为之前发布的address加上?wsdl
2.1.3刷新工程,查看客户端生成的代码
2.2测试程序
从上方的wsdl数据,可以看出HelloWebServiceImplService是主要的实现类,所以创建HelloWebServiceImplService的对象,然后通过HelloWebServiceImplService对象调用上方的wsdl数据中的HelloWebServiceImplPort方法,返回一个接口(实现类对象的引用),再通过该接口变量调用服务器端暴露的方法。
public class FindServerMethod { public static void main(String[] args) { /**HelloWebServiceImplService*/ HelloWebServiceImplService factory = new HelloWebServiceImplService(); HelloWebServiceImpl helloImplPort = factory.getHelloWebServiceImplPort(); String result = helloImplPort.sayHello("java"); System.out.println(result); } }
原文:http://www.cnblogs.com/Json1208/p/5146984.html