webservice技术的简单实现案例(基于jax-rs)

  • Post author:
  • Post category:其他
webservice
基于不同的系统之间的数据通信。
jax-ws
基于协议soap —–>xml
jax-rs
基于协议 http —-> json(用的更多) / xml
接口 ,符合restful风格
restful风格特点:
代码层面:一个接口里,无论有多少个方法,只需要提供一个URL,然后通过PUT/GET/POST/DELETE请求格式来确定调用的是哪一个接口方法
使用层面:为了满足给不同的终端提供数据或进行数据通信时,达到一个统一标准,而选择这种接口风格。
jax-rs如何与spring整合
  1. 1、导入的pom坐标
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-client</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-extension-providers</artifactId>
<version>3.0.1</version>
</dependency>
2、配置web.xml
<servlet>
<servlet-name>CXFService</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFService</servlet-name>
<!– 确定webservice接口的访问根路径 –>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
3、配置applicationContext-webservice.xml
<jaxrs:server id=”customerService” address=”/customerService”>
<jaxrs:serviceBeans>
<bean class=”cn.itcast.crm.service.impl.CustomerServiceImpl” />
</jaxrs:serviceBeans>
<jaxrs:inInterceptors>
<bean class=”org.apache.cxf.interceptor.LoggingInInterceptor”></bean>
</jaxrs:inInterceptors>
<jaxrs:outInterceptors>
<bean class=”org.apache.cxf.interceptor.LoggingOutInterceptor”></bean>
</jaxrs:outInterceptors>
</jaxrs:server>
了解webservice接口具体的实现及使用
接口中各类注解的作用:
@Path 定义在类或方法上 确定调用接口的访问路径
@PathParam 定义路径上的参数
@QueryParam 获取URL后面接的参数(form表单提交的参数或url ?后面的参数)
@Consumes 消费者。 确定方法的参数类型
@Produces 生产者。 确定方法返回的数据类型
定义的类型主要是两种:
application/json application/xml
定义的数据类型,有默认值 :配置在前面的数据类型,为默认类型。
注意:如果参数类型或返回类型 为 基本数据类型(简单类型+String),则可省略类型(@Consumes或@Produces)的配置
请求类型
@GET / @POST / @DELETE / @PUT
=========================================
当访问一个webservice的接口时,完整的URL如何拼接?
项目访问的根路径+web.xml(url-pattern) + webservice.xml(address) + 接口中方法的@Path

版权声明:本文为faultyoung原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。