JDK6 webservice的应用(注意SOAPBinding.Style不同的差异)

[color=red]blog迁移至[/color]:[url=http://www.micmiu.com]http://www.micmiu.com[/url]

从JDK6.0开始,Java引入了对Web Service的支持。
我们只需要简单的使用Java的Annotation标签即可将标准的Java方法发布成Web Service。
本文注意讲述下本人在实际运用中因为SOAPBinding.Style不同,在生成webwervice时的一些差异。
SOAPBinding.Style:[color=blue]PRC[/color]、[color=blue]DOCUMENT[/color] [color=red]JDK6 中默认的是DOCUMENT[/color]
下面通过具体的例子详细讲述JDK6 webservice的应用和差异。
[color=blue]1.DOCUMENT[/color]
Java类:MessageJws.java 特别注意下 [color=red]@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)[/color]

/**
* JDK6 webservice
* @author Michael sun
*/
@WebService(name = "messageJws", targetNamespace = "http://www.michael.com/messagejws")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT)
public class MessageJws {

/**
* description WSDL with default
* @param userName
* @return String
*/
@WebMethod
public String sayLove(@WebParam(name = "userName")
String userName) {
return userName + " I love you .";
}

/**
* description WSDL myself
* @param girlName girlName
* @param boyName boyName
* @return String
*/

@WebMethod(action = "sayWelcome", operationName = "sayWelcome", exclude = false)
@WebResult(name = "returnWelcomeMessage")
public String sayWelcome(@WebParam(name = "girlName")
String girlName, @WebParam(name = "boyName")
String boyName) {

return girlName + " ," + boyName + " welcome to JDK6 webservice.";
}

}

[color=red]PS:[/color]如果发布webservice的java类的方法中有异常声明时,是不能直接发布成webservice的,
需要用wsgen命令生成相应的异常处理的类。

[color=red]wsgen 命令[/color] [color=blue]可以为我们生成wsdl 和异常处理的类(本例没有声明异常处理)[/color]
本例的class目录结构如下:calsses\com\michael\MessageJws.class
在执行下面的命令之前需要新建文件夹[color=blue]classes\wsdl\,用来存放生成wsdl文件[/color]
如果创建文件夹[color=blue]classes\bin\[/color]、[color=blue]classes\src\[/color]:...\classes>执行下面的命令:

wsgen -cp . -r ./wsdl -s ./src -d ./bin -wsdl com.michael.MessageJws

[color=red]如果不创建上面的src、bin文件夹则可以: ...\classes>执行下面的命令:[/color]

wsgen -cp . -r ./wsdl -s ./ -d ./ -wsdl com.michael.MessageJws

这时在 calsses\com\michael\ [color=blue]下看到生成了新的文件夹jaxws,jaxws目录下的文件如下:[/color]
[img]http://dl.iteye.com/upload/attachment/237070/b37f5a89-8084-3b21-b2a0-2251e1b75ccc.jpg[/img]
同时在刚才新建的 classes\wsdl\ 下生成了[color=red]两个wsdl相关文件[/color]:
[color=red]MessageJwsService.wsdl 和 MessageJwsService_schema1.xsd[/color][url=http://dl.iteye.com/topics/download/13287086-f3d7-39a1-921d-5146e23e67e5]详细见附见wsdl文件[/url]

[color=red]wsimpot 命令[/color] [color=blue]可以很方便的用来构建Web Service的客户端。[/color]
在执行下面的命令之前需要在classer\下 [color=blue]新建文件夹bin和s[/color]rc
...\calasses->执行下面的命令:

wsimport -s ./src -d ./bin -p com.michael.messageclient ./wsdl/MessageJwsService.wsdl

这时可以在 [color=blue]calsses\src\com\michael\messageclient\[/color] 路径下看到:

[img]http://dl.iteye.com/upload/attachment/237100/5aed3c3e-d56f-3c19-8fdc-561c21cb3641.jpg[/img]
到此 客户端已经生成好了。
[color=blue]2.RPC[/color]
如果把MessageJws.java 的改为[color=red]:@SOAPBinding(style = SOAPBinding.Style.RPC)[/color]
执行wsgen 命令后,不同于上面DOCUMNET的:
[list]
[*] 在 calsses\com\michael\ 下不会生成目录jaxws以及jaxws下的相关类。
[*] 在 classes\wsdl\ 下只生成了一个文件:[color=red]MessageJwsService.wsdl[/color][/list] [url=http://dl.iteye.com/topics/download/fc5fb606-c691-3d60-900c-fa551bc8feb3]详细见附见wsdl文件[/url]
执行wsimport 命令后在[color=blue]calsses\src\com\michael\messageclient\ [/color]路径下看到:

[img]http://dl.iteye.com/upload/attachment/237106/585e27b7-8871-3e2f-8e8d-6f30f12a69e3.jpg[/img]
和上面DOCUMENT生成客户端相比较明显不同。

PS: 本文中用到的 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 ./bin -r ./wsdl -s ./src -d ./bin -wsdl com.michael.MessageJws


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 com.michael.messageclient http://localhost:8088/messagejws?wsdl

wsimport -d ./bin -s ./src -p com.michael.messageclient ./wsdl/MessageJwsService.wsdl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: jdk6_api帮助文档.chm是指Java Development Kit (JDK) 6版本的帮助文档,在Windows操作系统中以chm格式提供。这个文档是Java开发人员在开发过程中的重要参考资料。 JDK是一个开发和运行Java应用程序的软件开发工具包。它提供了开发人员所需的编译器、调试器和其他工具,以及Java应用程序所需的运行时环境。JDK 6是Java的一个历史版本,虽然现在已经有了更高版本的JDK,但JDK 6仍然被一些旧的Java应用程序或项目所使用。 这个帮助文档详细地记录了JDK 6的API(Application Programming Interface)。API是一组提供给开发者使用的类、方法和接口,它们定义了编写Java应用程序时可用的各种功能和功能组件。JDK 6的API文档描述了Java核心库的所有类和方法,开发人员可以从中了解每个类和方法的功能、用法和参数。 这个帮助文档以chm格式存储,这是一种Windows帮助文件的常见格式。chm文件可以被打开并浏览,其中包含了目录、索引和详细的文档内容。开发人员可以根据需要在本地系统上安装并使用这个文件,以便在开发过程中随时查阅Java API的说明。 总的来说,jdk6_api帮助文档.chm是Java开发人员在使用JDK 6时的重要资源。通过查阅这个文档,开发人员可以更好地理解和运用JDK 6的各种功能和API,提高开发效率和质量。 ### 回答2: JDK6_API帮助文档.chw是Java Development Kit(JDK)6版本的帮助文档文件。JDK是用于开发和构建Java应用程序的软件开发工具包。这个帮助文档对于理解JDK6版本的Java编程语言和相关API(应用程序编程接口)非常有帮助。 帮助文档.chw文件通常包含了Java的核心API库的详细说明。这些API提供了各种类和方法,开发者可以使用它们来构建Java应用程序。帮助文档中通常包含了每个类和方法的详细说明、参数、返回值和使用示例。此外,帮助文档还包括了Java语言的语法规则、开发环境的配置和使用教程等。 使用JDK6_API帮助文档.chw,开发者可以快速查找和理解Java语言和API的使用方式。无论是熟悉Java语言的基础知识还是探索更高级的主题,帮助文档都是一个重要的参考工具。通过查阅帮助文档,开发者可以了解如何使用不同的类和方法来实现特定功能,解决问题以及提高程序性能。 总之,JDK6_API帮助文档.chw是一个完善的资源,为开发者提供了关于Java编程语言和API的详细说明和指导。通过查阅帮助文档,开发者可以更加深入地了解和运用Java技术,提高开发效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值