### 使用JAX-WS开发WebService入门教程
#### 一、准备工作
在开始使用JAX-WS开发WebService之前,首先需要确保开发环境满足以下条件:
1. **Java版本**:需要安装Java SE 1.5或更高版本。这是因为JAX-WS自Java SE 6开始作为标准API被集成到了JDK中,但在Java SE 1.5中也可以通过额外添加相关的JAR包来实现。
2. **开发工具**:本教程推荐使用MyEclipse作为开发工具,因为MyEclipse内置了对JAX-WS的支持,能够方便地进行WebService的开发和部署。
3. **JAR包配置**:需要将JAX-WS所需的JAR包添加到项目的classpath中。这些JAR包通常包括但不限于`jaxws.jar`、`jaxb-api.jar`、`saaj-impl.jar`等。如果使用的是Java SE 6及以上版本,这些JAR包已经包含在JDK中,可以直接使用;如果是Java SE 5,则需要手动下载并添加到项目中。
#### 二、创建服务端
1. **创建WebService项目**:在MyEclipse中,依次点击`File > New > Web Service Project`。在弹出的对话框中输入项目名称,并选择合适的选项后点击`Finish`。
2. **编写服务接口类**:新建一个接口类,例如`Hello`。该接口定义了WebService的服务方法,例如`sayHello(String name)`。
3. **创建服务实现类**:为`Hello`接口创建一个实现类,如`HelloImpl`。在这个类中实现服务方法的具体逻辑。同时,需要为这个类添加`@WebService`注解,指定服务接口。
4. **生成WebService相关文件**:右键点击项目中的`src/main/webapp/WEB-INF/services`目录,选择`New > Other > Web Services/Web Service`。按照向导提示,选择`Bottom-up scenario`,然后浏览并选择之前创建的`HelloImpl`类。接下来的步骤保持默认设置即可。
5. **配置部署描述符**:编辑`web.xml`文件,确保其中包含了对WebService的正确配置。例如,需要指定`<servlet>`和`<servlet-mapping>`元素来映射服务类和端点URL。
#### 三、部署服务
1. **添加JAX-WS JAR包**:下载JAX-WS的JAR包,并将它们复制到项目的`WEB-INF/lib`目录下。这一步对于Java SE 5非常重要,而对于Java SE 6及以上版本来说,这些JAR包已经包含在JDK中。
2. **部署到Tomcat**:将WebService项目部署到Tomcat服务器。具体操作类似于部署普通的Web应用,可以使用MyEclipse的集成开发环境直接部署。
3. **启动Tomcat并测试服务**:启动Tomcat服务器后,在浏览器中访问`http://127.0.0.1:8080/projectname/HelloPort?WSDL`来测试服务是否正常启动。如果能够成功获取到WSDL文档,则说明服务端运行正常。
#### 四、创建客户端,访问服务端
1. **创建客户端项目**:在MyEclipse中新建一个Java项目,用于构建客户端。
2. **生成客户端代码**:右键点击项目中的`src`目录,选择`New > Other > Web Service Client`。在向导中,输入WSDL的URL,即前面测试服务时使用的URL。之后的步骤保持默认设置即可。
3. **编写客户端代码**:在客户端项目中,编写Java代码来调用服务端提供的方法。例如,创建一个客户端类`HelloClient`,并在其中调用`sayHello`方法。
通过以上步骤,我们可以成功地使用JAX-WS开发并部署一个简单的WebService,以及创建客户端来访问该服务。这种技术在企业级应用开发中非常常见,尤其是在需要实现不同系统之间的远程通信和数据交换的场景下。