Apache CXF是一个开源框架,可以用于构建和开发Web服务。它支持多种Web服务标准,能够简化服务的创建、配置和发布过程。为了开发基于Apache CXF的Web服务,您需要一些必要的JAR包。本文将介绍所需的JAR包清单,并提供简单的代码示例。
一、所需JAR包清单
在使用Apache CXF开发Web服务时,通常需要以下几类JAR包:
- CXF核心库:
cxf-api-x.y.z.jar
cxf-common-x.y.z.jar
cxf-rt-frontend-jaxws-x.y.z.jar
-
cxf-rt-transports-http-x.y.z.jar
-
JAX-WS支持:
javax.xml.ws-api-x.y.z.jar
(Java EE JAX-WS API)-
jaxb-api-x.y.z.jar
(JAXB API) -
XML处理相关库:
jaxb-impl-x.y.z.jar
(JAXB实现)jaxb-core-x.y.z.jar
xml-apis-x.y.z.jar
-
xml-commons-*.jar
-
其他依赖库:
commons-logging-x.y.z.jar
(Apache Commons Logging)slf4j-api-x.y.z.jar
(SLF4J API)- 其他您可能需要的常用库,比如
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。