java调用webservice示例

Java调用WebService服务的方法主要有以下几种:

1、使用JAX-WS(Java API for XML Web Services)

java调用webservice示例

JAX-WS是Java SE的一部分,它提供了一组API,用于创建和调用Web服务,JAX-WS支持两种类型的Web服务:RPC(远程过程调用)和文档导向的Web服务,RPC风格的Web服务通常用于客户端/服务器应用程序,而文档导向的Web服务则用于发布和发现基于文档的信息。

要使用JAX-WS调用WebService服务,需要遵循以下步骤:

1、1 生成代理类:使用wsimport工具从WSDL文件生成Java代理类。

1、2 创建WebService客户端:使用javax.xml.ws.Service接口创建WebService客户端。

1、3 调用WebService方法:通过代理类的对象调用WebService方法。

java调用webservice示例

示例代码:

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;
public class JAXWSClient {
    public static void main(String[] args) throws Exception {
        // 1. 创建URL对象,指向WSDL文件的位置
        URL wsdlURL = new URL("http://localhost:8080/mywebservice?wsdl");
        // 2. 创建QName对象,指定服务的名称和命名空间
        QName serviceName = new QName("http://example.com/", "MyWebService");
        QName portName = new QName("http://example.com/", "MyWebServicePort");
        // 3. 创建Service对象,传入WSDL文件的URL和服务名称、端口名称
        Service service = Service.create(wsdlURL, serviceName);
        // 4. 调用getPort方法,获取服务的端口对象
        MyWebService myWebService = service.getPort(portName, MyWebService.class);
        // 5. 调用WebService方法,传入参数并获取返回值
        String result = myWebService.myMethod("Hello, World!");
        System.out.println("Result: " + result);
    }
}

2、使用Apache CXF(Apache Software Foundation's Contract First Web Services)

Apache CXF是一个开源的实现SOAP协议的Web服务框架,它提供了一套丰富的API,用于创建和调用Web服务,CXF支持多种编程语言,包括Java、Python、Ruby等。

要使用Apache CXF调用WebService服务,需要遵循以下步骤:

2、1 添加CXF依赖:在项目的pom.xml文件中添加Apache CXF的依赖。

java调用webservice示例

2、2 生成客户端代码:使用cxf-codegen-plugin插件从WSDL文件生成客户端代码。

2、3 创建WebService客户端:使用生成的客户端代码创建WebService客户端。

2、4 调用WebService方法:通过客户端对象调用WebService方法。

示例代码:

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.wsdl11.WSDLManagerImpl;
import javax.xml.namespace.QName;
import java.util.List;
import java.util.Map;
public class CXFClient {
    public static void main(String[] args) throws Exception {
         // 1. 创建WSDLManager对象,用于处理WSDL文件的加载和解析
        WSDLManagerImpl wsdlManager = new WSDLManagerImpl();
        wsdlManager.setWsdlLocation("http://localhost:8080/mywebservice?wsdl");
        wsdlManager.setServiceClass(MyWebService.class);
        wsdlManager.setEndpointAddress("http://localhost:8080/mywebservice");
        wsdlManager.setFeatures(new String[]{"javax.wsdl.Binding"}); // 如果需要,可以设置其他特性,如安全、事务等
        wsdlManager.initialize();
        // 2. 创建JaxWsProxyFactoryBean对象,用于生成代理类实例
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        factory.setServiceClass(MyWebService.class); // 设置服务接口类型
        factory.setAddress("http://localhost:8080/mywebservice"); // 设置服务的地址和端口号
        factory.setWsdlDocumentationLocation("http://localhost:8080/mywebservice?wsdl"); // 如果需要,可以设置WSDL文档的位置和版本信息
        factory.setDataBindingId("java:compact"); // 如果需要,可以设置数据绑定的类型和版本信息,如javax.xml.datatype等
        factory.setFeatures(new String[]{"javax.xml.ws.soap"}); // 如果需要,可以设置其他特性,如安全、事务等
        factory.setEndpointInterface(MyWebServicePortType.class); // 如果需要,可以设置服务的端口类型和名称,如MyWebServicePortType等
        factory.setBus(new SpringBus()); // 如果使用Spring框架,可以设置Spring上下文的引用,以便进行依赖注入等操作
        factory.afterPropertiesSet(); // 初始化工厂对象后,会触发一系列事件,如加载WSDL文件、生成代理类等操作
        MyWebService myWebService = (MyWebService) factory.create(); // 通过工厂对象生成代理类实例,并转换为服务接口类型或端口类型等对象类型

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/325123.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-02-19 21:09
Next 2024-02-19 21:14

相关推荐

  • Java WebService技术详解

    Java WebService技术详解WebService是一种跨网络的服务通信方法,它允许不同平台和编程语言之间的应用程序通过互联网标准进行通信交互,在Java领域,WebService主要通过JAX-WS(Java API for XML Web Services)来实现,这是一套用于创建Web服务的Java API,下面将详细介……

    2024-02-04
    0144
  • java使用cxf调用webservice

    Java调用CXF WebService接口的两种方式实例在Java开发中,我们经常需要与外部系统进行交互,而WebService是一种常见的远程调用方式,CXF(Apache CXF)是一个开源的、轻量级的WebService框架,它提供了丰富的功能和易用性,本文将介绍两种使用Java调用CXF WebService接口的方式:使用……

    2024-01-05
    0131
  • java通过xfire调用金蝶K3 webservice接口返回null

    技术介绍在Java中,通过XFire框架调用WebService接口是一种常见的实现方式,XFire是一个轻量级的SOAP框架,它提供了简单易用的API,可以方便地实现客户端与WebService之间的通信,金蝶K3是一款集成了ERP功能的企业管理软件,它提供了丰富的WebService接口供开发者使用,本文将介绍如何使用Java和X……

    2023-12-17
    0141
  • webservice接口调用方式

    在现代软件开发中,Web服务接口已经成为了一种常见的数据交换方式,它们允许不同的软件系统之间进行通信和数据共享,而无需关心对方的内部实现细节,本文将详细介绍如何调用Web服务接口。1、Web服务接口简介Web服务接口是一种基于HTTP协议的远程过程调用(RPC)机制,它允许客户端通过发送HTTP请求来调用服务器上的某个方法,并获取返回……

    2023-12-30
    0132
  • webservice的工作原理

    WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。它是通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册 。

    2024-01-07
    0134
  • java调用webservice示例

    import java.net.URL;public static void main(String[] args) throws Exception {. wsdl");Service service = Service.create(wsdlUrl, serviceName);MyWebService myWebService = service.getPort(MyWebService.

    2023-12-10
    0135

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入