JavaSE6.0下的Web Service
从JavaSE6.0开始,Java引入了对Web Service的原生支持。我们只需要简单的使用Java的Annotation标签即可将标准的Java方法发布成Web Service。
发布一个的Java Web Service
在完成了上述的Web Service Annotation注释后,我们使用wsgen工具为其进行服务资源文件的构造
在控制台运行这个类,就可以使用URL :http://localhost:8080/project?wsdl 浏览到上文所描述的WSDL的全文了。这说明您的第一个Web Service应用发布成功!
构建Web Service客户端
使用JavaSE6.0构建Web Service的客户端是一件相当简单的事。这里我们要使用到JDK中的另一个命令行工具wsimport。在控制台下输入以下命令:
引用
wsimport -d bin文件目录 -s src文件目录 -p 包名 http://localhost:8080/project?wsdl
附录:wsgen与wsimport命令说明
wsgen
wsgen 是在JDK的bin目录下的一个exe文件(Windows版),该命令的主要功能是用来生成合适的JAX-WS。它读取Web Service的终端类文件,同时生成所有用于发布Web Service所依赖的源代码文件和经过编译过的二进制类文件。这里要特别说明的是,通常在Web Service Bean中用到的异常类会另外生成一个描述Bean,如果Web Service Bean中的方法有申明抛出异常,这一步是必需的,否则服务器无法绑定该对像。此外,wsgen还能辅助生成WSDL和相关的xsd文件。wsgen从资源文件生成一个完整的操作列表并验证web service是否合法,可以完整发布。
命令参数说明:
* ? -cp 定义classpath
* ? -r 生成 bean的wsdl文件的存放目录
* ? -s 生成发布Web Service的源代码文件的存放目录(如果方法有抛出异常,则会生成该异常的描述类源文件)
* ? -d 生成发布Web Service的编译过的二进制类文件的存放目录(该异常的描述类的class文件)
命令范例:wsgen -cp 文件目录 -r wsdl文件目录 -s src文件目录 -d bin文件目录 -wsdl 类名(全路径)
wsimport
wsimport 也是在JDK的bin目录下的一个exe文件(Windows版),主要功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责与Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。对Java而言,wsimport帮助程序员生存调用web service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,如:服务器端也许是C# 编写的web service,通过wsimport则生成Java的客户端实现。
命令参数说明:
* ? -d 生成客户端执行类的class文件的存放目录
* ? -s 生成客户端执行类的源文件的存放目录
* ? -p 定义生成类的包名
命令范例:
wsimport -d bin文件目录 -s src文件目录 -p 包名 http://localhost:8080/project?wsdl