Java调用WebService全攻略:从创建到客户端接入
需积分: 9 188 浏览量
更新于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 的基本原理和通信协议是至关重要的。
2022-11-16 上传
2012-10-19 上传
103 浏览量
2014-08-23 上传
2012-08-08 上传
2021-10-19 上传
2024-02-01 上传
2024-06-28 上传
2022-02-07 上传
u010113655
- 粉丝: 0
- 资源: 1
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍