本篇博客实现了基于动态代理的CXF客户端,通过代理服务端的接口,从而可以在客户端直接调用服务接口的方法。
本次实验实现GET、PUT、POST等HTTP请求,同时实现了如何向服务端发送数据以及读取来自服务端的数据。
一、工具:Eclipse java Neon(自带Maven插件)
二、环境:JDK 1.8.0_91 (版本不是很重要)
三:实现过程:
1、使用Maven新建Web工程
2、创建完成后配置pom.xml文件 添加依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>demo.jarxs</groupId>
<artifactId>proxy_client</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>proxy_client Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 申明常用软件的版本 -->
<properties>
<jettyVersion>9.3.7.v20160115</jettyVersion>
<cxf.version>3.1.6</cxf.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0.1</version>
</dependency>
<!-- CXF jaxrs 依赖 -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<!-- spring 依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.2.8.RELEASE</version>
</dependency>
<!-- Json 依赖 -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-xc</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
<version>1.3.8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.19</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.19</version>
</dependency>
<!-- cxf client 依赖 -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-client</artifactId>
<version>3.0.0-milestone1</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- jetty:run 插件 -->
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty