最近开始接触WebService,小白一个,各种找资源,看了很多的博客,我觉得动手太重要了,其实多捣鼓几下,可能慢慢自己对所要掌握的东西就有个大的框架了。从现在开始养成记录的好习惯,慢慢进步!
直接讲正事!!
- 查看本机安装的JDK版本(java -version)
我发布的WebServisejdk版本是1.7的,之所以先说jdk是因为由于jdk的版本不对,踩了很多的坑,毕竟我是个小小白(抿嘴笑.ing)。我的MyEclipse默认jdk版本是1.6的,我查看了一下我本机安装的jdk版本是1.7,在我的项目中我把jdk版本也改成了1.7,如何更改MyEclipse的JDK版本下面会说。可以在dos(win键+R,输入cmd,回车)下通过java -version来查看本机安装的jdk版本,如图:
- 要建两个项目,一个作为服务端,另一个作为客户端,下面是我的项目结构,如图:
- 新建一个web 项目,操作是new一个Web Service Project项目,名称是ws,详细选项如下图:(因为我现在是写一个类似记录的东西,所以会有项目名已经存在的问题,忽略就好)
在该项目下new一个类,类名为ws_hello,包名为com.ws,详细选项如图(同样忽略type already exits问题):
- 更改JDK版本
用右键点击项目,找到Build Path->Configure Build Path…->跳转到如下页面->选中Libraries->选中JRE System library->点击Edit…
随之进入到Edit Library界面,选择Alternate JRE,如果没有适合的版本就需要安装,点击installed JREs…
点击installed JREs会出现如下页面,点击Add,选中Standand VM,点击next,就可以添加新版本的JDK了
在添加JDK时需要JDK的安装路径,可以在dos(win键+R,输入cmd,回车)下java -verbose来找到(输入该命令后,拉到最下面),如下图
在Add JRE页面,可以添加新的JDK,finish就行了,如下图(我已经有这个版本了,所以忽略jre名称已占用问题),刷新一下项目jdk版本就已经改过来了。
更改后可查看是否更改成功,看该项目的JRE System Library后面会显示版本,如图:
- 服务端写接口类,main函数通过Endpoint来发布服务
运行这段代码得到Publish Success~,说明发布成功。再次运行会报错,如下图。因为已经发布了,所以想再验证一下就重新启动MyEclipse就行了(毕竟我菜,只能这样解决了,捂脸.ing)。
在浏览器中打开http://localhost:8080/Service/ws_hello会出现如下界面,有WSDL
- 建一个客户端项目,通过命令行来生成客户端代码
new一个操作是new一个Web Service Project项目,名称是ws_client。然后在dos下执行wsimport -s D:\MyEclipse_workspace\ws_client\src -p com.ws.client -keep http://localhost:8080/Service/ws_hello?wsdl命令。其中com.ws.client包会新生成,包里面是生成的客户端代码(.java),D:\MyEclipse_workspace\ws_client\src是工作环境,需要注意的是http://localhost:8080/Service/ws_hello?这个网址后面的?wsdl不能丢。这些代码需要在执行这个命令后刷新一下项目才能看到。
- 写一个测试类
在客户端项目下建一个名为ws_test的类,包名为com.ws.test,在main函数中进行调用,ws_test类具体如下:
运行结果如下,调用成功:
客户端的项目结构展示如下,用命令行生成客户端代码可能会有点糊涂,在ws_test测试类中调用服务时,可整理思路,看着看着,就可能嚼出味道了:
(PS:希望自己可以养成记录的好习惯,慢慢成长!)