Java调用WebService全攻略:从创建到客户端接入

需积分: 9 9 下载量 116 浏览量 更新于2024-07-26 2 收藏 97KB DOC 举报
"Java 调用 WebService 的各种方法" 在 Java 开发中,调用 WebService 是一种常见的通信方式,特别是在分布式系统和跨平台交互中。本篇内容将总结几种 Java 调用 WebService 的方法。首先,我们来看基于 JDK 的 Web 服务 API 实现,使用 SOAPMessage 的 Web 服务。 1. 利用 JDK Web 服务 API 实现: 这种方法是通过 JDK 自带的 WebService 框架来创建和调用 WebService。首先,我们需要创建一个 WebservicesEndPoint。以下是一个简单的示例: ```java package Hello; import javax.jws.WebService; import javax.jws.WebMethod; import javax.xml.ws.Endpoint; @WebService public class Hello { @WebMethod public String hello(String name) { return "Hello, " + name + "\n"; } public static void main(String[] args) { // 创建并发布一个端点 Hello hello = new Hello(); Endpoint endpoint = Endpoint.publish("http://localhost:8080/hello", hello); } } ``` 在上述代码中,`@WebService` 注解标记了该类为 WebService,`@WebMethod` 注解定义了服务方法。然后,使用 `Endpoint.publish()` 方法发布服务。 2. 使用 APT 编译: 在 Java 类编译后,可以使用 APT (Annotation Processing Tool) 来生成相应的服务描述文件。例如,运行 `apt -d [存放编译后的文件目录] Hello.java`,这将在指定目录下生成 `jaws` 目录,包含服务相关的元数据。 3. 访问 WebService: 通过浏览器访问 `http://localhost:8080/hello?wsdl`,可以看到 WebService 的 WSDL(Web Service Description Language)文件,这是服务的接口描述。 4. 使用 wsimport 生成客户端代码: 使用 `wsimport` 工具,可以从 WSDL 文件自动生成客户端所需的代理类和模型类。执行 `wsimport -p . -keep http://localhost:8080/hello?wsdl` 命令,会在当前目录生成客户端所需文件。 5. 编写客户端程序: 客户端程序通常包括创建服务代理对象并调用服务方法。下面是一个简单的客户端示例: ```java class HelloClient { public static void main(String args[]) { HelloService service = new HelloService(); Hello helloProxy = service.getHelloPort(); String hello = helloProxy.hello("你好"); System.out.println(hello); } } ``` 在这个例子中,`HelloService` 和 `Hello` 是由 `wsimport` 生成的类,它们用于与服务进行交互。 除了基于 JDK 的方法,还有其他一些框架和库可以用来调用 WebService,如 Axis、CXF、Spring-WS 等。这些框架提供了更高级的功能,如自动处理 SOAP 消息、支持多种协议和绑定方式、易于集成到现有项目等。 - Apache Axis:是一个开源的 WebService 框架,提供对 SOAP、WSDL 和 UDDI 的支持,简化了 WebService 的开发过程。 - Apache CXF:是另一个强大的 WebService 框架,它不仅支持 SOAP,还支持 RESTful 风格的服务。CXF 提供了丰富的功能,如自动数据绑定、异常处理、安全机制等。 - Spring-WS:作为 Spring 框架的一部分,Spring-WS 专注于 SOAP 消息处理,提供了基于契约优先的 WebService 开发模式。 Java 调用 WebService 可以选择不同的实现方式,开发者可以根据项目需求和团队习惯选择最适合的方法。无论选择哪种方法,理解 WebService 的基本原理和通信协议是至关重要的。