java使用cxf调用webservice

Java调用CXF WebService接口的两种方式实例

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

java使用cxf调用webservice

使用JAX-WS客户端API

1、1 创建WebService客户端

我们需要创建一个WebService客户端,可以使用wsimport工具从WSDL文件生成Java类,在命令行中执行以下命令:

wsimport -keep -p com.example.client http://localhost:8080/webservice?wsdl

这将在com.example.client包下生成对应的Java类。

1、2 编写客户端代码

接下来,我们编写客户端代码来调用WebService接口,以下是一个简单的示例:

java使用cxf调用webservice

package com.example.client;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;
public class WebServiceClient {
    public static void main(String[] args) throws Exception {
        // 创建URL对象,指向WebService的地址
        URL wsdlUrl = new URL("http://localhost:8080/webservice?wsdl");
        // 创建QName对象,指定服务的名称和命名空间
        QName serviceName = new QName("http://example.com/", "MyWebService");
        // 创建服务对象
        Service service = Service.create(wsdlUrl, serviceName);
        // 获取代理对象
        MyWebService myWebService = service.getPort(MyWebService.class);
        // 调用WebService接口的方法
        String result = myWebService.sayHello("World");
        System.out.println("Result: " + result);
    }
}

1、3 运行客户端代码

现在,我们可以运行客户端代码来调用WebService接口,如果一切正常,控制台将输出以下结果:

Result: Hello World!

使用Spring框架集成CXF

2、1 添加依赖

在项目的pom.xml文件中添加CXF和Spring相关的依赖:

<dependencies>
    <!-CXF -->
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
        <version>3.4.5</version>
    </dependency>
    <!-Spring Boot -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
</dependencies>

2、2 配置Spring Boot应用

java使用cxf调用webservice

在Spring Boot应用的主类上添加@EnableWs注解,以启用WebService支持:

package com.example;
import org.apache.cxf.spring.boot.autoconfigure.CxfAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.EnableWs;
@SpringBootApplication
@EnableWs // 启用WebService支持
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

2、3 编写WebService接口和实现类

创建一个名为MyWebServiceImpl的类,实现MyWebService接口:

package com.example;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.*;
import javafx.util.*; // 引入JavaFX库,用于处理国际化问题,实际项目中应使用其他方法处理国际化问题,如使用Spring的MessageSource等。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod注解用于指定WebService接口的方法。@WebParam注解用于指定方法参数的信息。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod注解用于指定WebService接口的方法。@WebParam注解用于指定方法参数的信息。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod注解用于指定WebService接口的方法。@WebParam注解用于指定方法参数的信息。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod注解用于指定WebService接口的方法。@WebParam注解用于指定方法参数的信息。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod注解用于指定WebService接口的方法。@WebParam注解用于指定方法参数的信息。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod注解用于指定WebService接口的方法。@WebParam注解用于指定方法参数的信息。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod注解用于指定WebService接口的方法。@WebParam注解用于指定方法参数的信息。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod注解用于指定WebService接口的方法。@WebParam注解用于指定方法参数的信息。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod注解用于指定WebService接口的方法。@WebParam注解用于指定方法参数的信息。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod注解用于指定WebService接口的方法。@WebParam注解用于指定方法参数的信息。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod注解用于指定WebService接口的方法。@WebParam注解用于指定方法参数的信息。@XmlSeeAlso注解用于解决JavaBean和XML之间的映射问题。@SOAPBinding注解用于指定SOAP绑定信息。@RequestWrapper和@ResponseWrapper注解用于处理请求和响应的包装和解包装。@WebMethod

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

(0)
K-seoK-seoSEO优化员
上一篇 2024年1月5日 22:12
下一篇 2024年1月5日 22:13

相关推荐

发表回复

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

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