Java调用以WSDL形式发布的web service.docJava调用以WSDL形式发布的web service.docJava调用以WSDL形式发布的web service.docJava调用以WSDL形式发布的web service.docJava调用以WSDL形式发布的web service.docv Java调用以WSDL形式发布的Web服务是一种常见的实践,特别是在集成不同系统或平台时。WSDL,即Web服务描述语言(Web Service Description Language),是一种XML格式的规范,它定义了Web服务的接口、消息结构、地址和绑定。下面将详细解释如何在Java中通过WSDL调用Web服务。 WSDL文件包含了Web服务的元数据,如服务的命名空间、端点(即服务地址)、操作(方法)和消息类型。当Java应用需要与一个以WSDL发布的Web服务交互时,它通常会使用一种名为“SOAP”(简单对象访问协议)的协议来发送和接收消息。 1. 使用Apache Axis调用远程Web服务 Apache Axis是一个流行的Java库,它允许开发者轻松地创建和消费Web服务。在上述示例中,我们看到如何使用Axis直接调用远程Web服务: ```java import org.apache.axis.client.Call; import org.apache.axis.client.Service; // 创建Service实例 Service service = new Service(); // 创建Call对象,用于执行Web服务操作 Call call = (Call) service.createCall(); // 设置Web服务的端点地址 call.setTargetEndpointAddress("http://localhost:8080/ca3/services/caSynrochnized?wsdl"); // 设置操作名称,对应WSDL中的定义 call.setOperationName("addUser"); // 添加参数及其类型 call.addParameter("userName", ...); // 设置返回类型 call.setReturnType(...); // 调用服务并处理结果 String result = (String) call.invoke(new Object[]{"测试人员"}); ``` 在这个例子中,`call.invoke()`方法用于执行Web服务操作,传入参数并接收响应。请注意,实际应用中需要根据具体的WSDL文件来配置操作名、参数和返回类型。 2. 使用SOAP直接调用远程Web服务 虽然不常见,但确实可以直接使用SOAP库来构造和解析SOAP消息。这通常涉及到手动创建SOAP请求和解析响应。以下是一个简化的示例: ```java import org.apache.soap.*; // 创建SOAP消息 SOAPMessage soapMessage = MessageFactory.newInstance().createMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); SOAPBody body = envelope.getBody(); // 添加SOAP Body元素 SOAPElement addUser = body.addChildElement("addUser", "ns", "http://yournamespace.com"); addUser.addChildElement("userName").addTextNode("测试人员"); // 发送SOAP请求并处理响应 SOAPConnection connection = SOAPConnectionFactory.newInstance().createConnection(); SOAPMessage response = connection.call(soapMessage, "http://service-url.com"); connection.close(); ``` 这种方式要求对SOAP消息结构有深入的理解,通常不如使用 Axis 或其他类似库方便。 总结起来,Java通过WSDL调用Web服务主要依赖于工具和库,如Apache Axis,它们简化了与WSDL定义的接口的交互过程。开发人员需要了解WSDL的结构,以便正确配置服务调用,并理解SOAP消息的构建,以便与Web服务进行通信。在实际项目中,通常还会使用到其他辅助工具,如WSDL解析器、代码生成器等,来帮助生成客户端存根类,从而简化调用流程。
- wsfdds2012-09-17分值太高,而且tomcat服务器的性能不好,不推荐。
- wjh78112012-09-19大概性的介绍,有点用,但真不值得10分。最多3分。
- 粉丝: 1
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助