基于jdk1.6 WebService编程
第一步:先写服务端,即webservice。
生成业务逻辑帮组类:(在netbeans里点击HelloService的右键,选择编译文件,然后打开命令行,
进入工程所在的路径,进入build/classes),而eclipse的Java类在保存的时候就已经自动编译了,不用在编译!
执行命令:
wsgen -cp . 包名(webservice的包名).类名(webservice的 java类)
执行完毕后,我们可以查看一下wsgen工具帮助我们生成了些什么。进入jaxws路径,我们可以看到3个类的java文件及其class文件,
其中需要返回值的SayHi方法映射为SayHi.java和SayHiResponse方法,分别是在服务器端的行为和传给客户端的响应(返回值)
测试服务发布是否成功可以在先运行该类-后在浏览器输入所发布的地址,看是否能得到wsdl文件(xml格式)
第二步:在java类的文件夹下执行wsimport -d webservice类的路径(如D:/MyeclipseWorkpacs/TestWS/src) webservice发布的地址(如http://localhost:8888/HelloService?WSDL)
执行这个命令,生成客户端的代理代码的字节码(.class文件)
第三步:由于我们第二步得到的是class文件没有什么作用,我们可以通过命令反编译得到java文件,这样客户端可以来调用
wsimport -s webservice类的路径(如D:/MyeclipseWorkpacs/TestWbService/src) -d webservice类的路径(D:/MyeclipseWorkpacs/TestWbService/src) webservice发布的地址(如http://localhost:8888/HelloService?WSDL)
第四步:编写客户端代码
以具体的代码为准,但格式都比较固定:一般是先得到继承了service类的类的实例,后有get**Port得到与webservice类名相同的那个接口
(这个接口是有第二三步的命令得来的)
,最后调用相关的方法!!
如有疑惑可以参考我的csdn博客:http://blog.csdn.net/xufaxi/archive/2010/05/24/5619070.aspx 以此为例,做一下便会明白!