JAX-WS入门与实战:从Hello World到WSDL生成

5星 · 超过95%的资源 需积分: 19 67 下载量 99 浏览量 更新于2024-07-30 3 收藏 129KB DOC 举报
"JAX-WS是Java API for XML-Based Web Services (JAX-WS) 的简称,它是Java 5之后开发Web服务的最新标准,源于JAX-RPC,但提供了更新的编程模型和增强功能。JAX-WS 2.0(JSR 224)是一个基于标准的实现,使用JAXB进行数据绑定,StAX处理XML解析,并支持Schema规范。 JAX-WS的开发有自顶向下和自底向上两种方法。自顶向下是从WSDL文件开始,自底上则是从Java类出发。在自底向上创建过程中,会涉及以下关键步骤: 1. 编写Java SEI (Service Endpoint Interface):一个Java接口,如`Hello`类,用于定义Web服务的功能,如`@WebService`和`@WebMethod`注解。例如,`Hello`类定义了一个接收字符串和整数并返回问候语的方法。 ```java package ws; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public class Hello { @WebMethod public String say(String name, int age) { return "Hello, I am " + name + ", I am " + age + " years old"; } } ``` 2. 生成WSDL和XSD:使用`wsgen`工具从Java类生成WSDL(Web Services Description Language),这是服务的接口定义,用于客户端调用。XSD(XML Schema Definition)是数据类型和约束的声明。 3. 运行`wsgen`:通过命令行运行`wsgen`,指定类路径、源目录和目标目录。例如: ``` wsgen -cp .\bin\ -r .\ -s .\src\ -d .\bin\ ws.Hello ``` 参数解释: - `-cp` 指定类路径,包含Java类文件的位置(如:bin\ws\Hello.class) - `-r` 生成bean的WSDL - `-s` 源代码目录 - `-d` 目标目录 完成以上步骤后,你会得到WSDL文件和相关的Java代码,包括SEI接口和可能的实现类。接下来,可以按照文档中的指导,将Web服务部署到应用程序或Web应用中,以及创建客户端进行调用。JAX-WS支持SOAP headers,允许在请求和响应中添加额外的信息,客户端和服务端都可以访问这些header。通过这种方式,JAX-WS提供了一种强大的框架,使Java开发者能够方便地构建和操作Web服务。"