首先我们先建一个服务端的类 import javax.jws.WebParam;import javax.jws.WebService;import javax.xml.ws.Endpoint;//表示这是一个web服务@WebServicepublic class HelloWebService {/** * 2、至少保证一个可以对外公开的
首先我们先建一个服务端的类
import javax.jws.WebParam; import javax.jws.WebService; import javax.xml.ws.Endpoint; //表示这是一个web服务 @WebService public class HelloWebService { /** * 2、至少保证一个可以对外公开的服务 * 对外提供服务无非就是提供个方法给外部调用,如果一个服务类没有方法,那发布它是没有意义的 */ public String sayHello(@WebParam(name="name") String name){ return name; } public static void main(String[] args) { /** * Endpoint 服务端点类,利用该类来发布服务 * 参数1:服务的发布地址 * 参数2:服务的实现者 * * publish发布成功后,会启动一个新线程来监听对 http://192.168.1.102:8080/hello 这个地址的请求 */ Endpoint.publish("http://192.168.1.102:8080/hello", new HelloWebService()); //接着就可以查看wsdl了浏览器中打开:http://172.16.35.55:8080/hello?wsdl //如果正常返回就说明发布成功 so easy! System.out.println("服务已启动"); } }
然后我们需要下载一个工具,我这个是apache-cxf-3.0.1这个版本的,我已经上传百度云http://pan.baidu.com/s/1bpKANPd
然后我们打开DOS命令,切记先运行上面那个类,只有服务端启动了,才能自动生成客户端所需要的类文件。
然后在浏览器输入wsimport -s d:\ http://192.168.1.102:8080/hello?wsdl有说明文件wsdl出来就是对的了,记得ip改为你电脑的ip
然后在DOS输入wsimport -s d:\ http://192.168.1.102:8080/hello?wsdl有如下图就是成功了
然后在D盘找到自动生成的类,把这些类复制进你的项目中,如果有的类有错误只需要删除即可,这是版本不同造成的,不影响使用
最后附上我的App.java代码
/** *通过wsimport命令生成客户端代码调用Webservice服务 * *命令格式 : * wsimport -s d:\ http://192.168.1.109:8080/hello?wsdl * * s:表示要生成源码 * d:\ 生成源码到哪个路径 * 依据哪个wsdl文件来生成? http://192.168.1.109:8080/hello?wsdl * * wsimport -s d:\ -p com.luowg.ws.wheather WSDL地址 */ public class App { public static void main(String[] args) { HelloWebServiceService hello = new HelloWebServiceService(); p2.HelloWebService he = hello.getHelloWebServicePort(); System.out.println(he.sayHello("杰宝宝")); } }自此第一个webservice就到此,下一篇我们将介绍如何调用天气接口