Apache CXF是一个开源框架,可以用于构建和开发Web服务。它支持多种Web服务标准,能够简化服务的创建、配置和发布过程。为了开发基于Apache CXF的Web服务,您需要一些必要的JAR包。本文将介绍所需的JAR包清单,并提供简单的代码示例。

一、所需JAR包清单

在使用Apache CXF开发Web服务时,通常需要以下几类JAR包:

  1. CXF核心库
  2. cxf-api-x.y.z.jar
  3. cxf-common-x.y.z.jar
  4. cxf-rt-frontend-jaxws-x.y.z.jar
  5. cxf-rt-transports-http-x.y.z.jar

  6. JAX-WS支持

  7. javax.xml.ws-api-x.y.z.jar(Java EE JAX-WS API)
  8. jaxb-api-x.y.z.jar(JAXB API)

  9. XML处理相关库

  10. jaxb-impl-x.y.z.jar(JAXB实现)
  11. jaxb-core-x.y.z.jar
  12. xml-apis-x.y.z.jar
  13. xml-commons-*.jar

  14. 其他依赖库

  15. commons-logging-x.y.z.jar(Apache Commons Logging)
  16. slf4j-api-x.y.z.jar(SLF4J API)
  17. 其他您可能需要的常用库,比如spring-context-x.y.z.jar(如果您使用Spring集成的话)。

建议使用Apache Maven或Gradle来管理这些依赖,这样可以自动下载和维护所需的库。例如,如果使用Maven,可以在pom.xml中添加如下依赖:

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxws</artifactId>
    <version>3.4.5</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http</artifactId>
    <version>3.4.5</version>
</dependency>
<dependency>
    <groupId>javax.xml.ws</groupId>
    <artifactId>jaxws-api</artifactId>
    <version>2.3.1</version>
</dependency>

二、简单示例

下面是一个简单的Apache CXF Web Service的开发示例,包括服务接口、实现类以及服务的发布。

1. 创建服务接口

创建一个接口HelloService,定义一个简单的方法:

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public interface HelloService {
    @WebMethod
    String sayHello(String name);
}

2. 实现服务接口

创建一个实现类:

import javax.jws.WebService;

@WebService(endpointInterface = "com.example.HelloService")
public class HelloServiceImpl implements HelloService {
    @Override
    public String sayHello(String name) {
        return "Hello, " + name + "!";
    }
}

3. 发布服务

在一个配置类中发布Web服务:

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

public class Server {
    public static void main(String[] args) {
        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
        factory.setServiceClass(HelloService.class);
        factory.setAddress("http://localhost:8080/hello");
        factory.setServiceBean(new HelloServiceImpl());
        factory.create();
        System.out.println("Service is published at http://localhost:8080/hello");
    }
}

4. 客户端调用

可以使用CXF提供的工具生成客户端代理代码,也可以直接用Http调用服务:

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;

public class Client {
    public static void main(String[] args) throws Exception {
        URL wsdlURL = new URL("http://localhost:8080/hello?wsdl");
        QName qname = new QName("http://example.com/", "HelloServiceImplService");
        Service service = Service.create(wsdlURL, qname);
        HelloService helloService = service.getPort(HelloService.class);
        System.out.println(helloService.sayHello("World"));
    }
}

结论

通过本文的介绍,我们了解了Apache CXF Web服务开发所需的基本JAR包,以及一个简单的Web服务创建、发布和调用的示例。使用Apache CXF开发Web服务可以高效、简洁地对外提供服务,是现代软件架构中不可或缺的一部分。希望这些内容能帮助您快速入门Apache CXF。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部