前提是项目SSM框架搭建好。
搭建cxf框架,
一、首先,将框架所需要的jar导入,pom.xml文件中
<!-- cxf 进行rs开发 必须导入 -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>3.0.1</version>
</dependency>
<!--cxf 客户端 -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-client</artifactId>
<version>3.0.1</version>
</dependency>
<!-- 扩展json提供者 -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-extension-providers</artifactId>
<version>3.0.1</version>
</dependency>
<!-- 转换json工具包,被extension providers 依赖 -->
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
<version>1.3.7</version>
</dependency>
二、然后在web.xml中加入
<!-- 配置CXF的Servlet程序-->
<servlet>
<servlet-name>cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>cxf</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
这里的url-pattern标签中的ws是我自定的路径名字。
三、编写实体类
在类前面加入注解 @XmlRootElement(name = "User")
以后把User类转换成XML格式的数据时候,name下的名字做根节点
四、编写service接口
接口前面加注解 @Produces("*/*") //表示响应数据的类型,任意MIMK类型
编写方法
方法前面加注解 @Get //请求方式适用于查询 ; @POST适用新增 ;@PUT适用于修改;@DELETE适用于删除
@Path("/访问路径②名字自定义,可方法名")
如果需要传入参数则 @Path("/访问路径②名字/{参数}")
@Consumes({"application/xml","application/json"}) 接收的参数类型
@Produces({ "application/xml", "application/json" }) 响应的数据类
五、新建applicationContext-cxf.xml
在配置文件中填写需要实例化的WebService需要的接口
( 1 )<bean id=“这里我写的接口的实现类名首字母小写” class=“接口实现类的路径”/>
如:<bean id="routeServiceImp" class="cn.itcast.service.RouteServiceImp"/>
( 2 )<jaxrs:server address="访问路径的名字①">
<jaxrs:serviceBeans>
<ref bean="写上边bean的id名字"/> //可写多个
</jaxrs:serviceBeans>
<jaxrs: inInterceptors>
<bean class=''org.apache.cxf.interceptor.LoggingInInterceptor''/>
</jaxrs: inInterceptors>
<jaxrs: outInterceptors>
<bean class=''org.apache.cxf.interceptor.LoggingOutInterceptor''/>
</jaxrs: outInterceptors>
</jaxrs:server>
最终编写的服务端已经完成
访问路径为 IP:端口号/项目名/Web中自定义的名字/配置文件中访问路径名字①/方法接口中的访问路径名字②
例如:localhost:8080/CPE/ws/findAll
之后浏览器会显示数据