博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache CXF 和 Spring 开发RESTful Web Service 2
阅读量:7106 次
发布时间:2019-06-28

本文共 3936 字,大约阅读时间需要 13 分钟。

hot3.png

###开发环境 Maven Eclipse Tomcat

###快速构建 archetype太少?关于如何添加本地archetype catalog:

下载文件 设置Eclipse 首选项 Maven Archetype ,将archetype-catalog.xml 添加为Local catalog.

使用Archetype 创建Maven项目,坐标:

org.apache.cxf.archetype

cxf-jaxrs-service 3.1.4

注释掉pom.xml文件中的插件配置,执行 mvn clean install

将项目发布到Tomcat服务器
我的项目名称为 my_cxf_restful
访问URL 网页显示结果为:

cong

###项目构建步骤 ####导入依赖包 导入jackson 是因为需要处理json类型数据

cxf-rt-frontend-jaxrs 为CXF 开发RESTful WebService 必须的包,其它依赖Maven会自动处理
项目基于Spring

1.8.6
org.apache.cxf
cxf-rt-frontend-jaxrs
3.1.4
org.apache.cxf
cxf-rt-rs-client
3.1.4
org.codehaus.jackson
jackson-core-asl
${jackson.version}
org.codehaus.jackson
jackson-mapper-asl
${jackson.version}
org.codehaus.jackson
jackson-jaxrs
${jackson.version}
org.springframework
spring-web
4.1.7.RELEASE
junit
junit
4.12
test

####编写RESTful WebService类: 这里并没有写成接口,而是直接写成实现类.

modifyJson方法中框架会将POST请求体的JSON 数据转换成对象JsonBean
注解说明,见下一条目

@Path("/hello")public class HelloWorld {    @GET    @Path("/echo/{input}")    @Produces("text/plain")    public String ping(@PathParam("input") String input) {        return input;    }    @POST    @Produces("application/json")    @Consumes("application/json")    @Path("/jsonBean")    public Response modifyJson(JsonBean input) {        input.setVal2(input.getVal1());        return Response.ok().entity(input).build();    }}

####注解说明: 本文段引用自

(天啊!居然不支持表格)

  • |标签|用法和解释|
  • |@GET,@POST,@PUT,@DELETE| 该组标签将一个标注方法的 HTTP 请求类型|
  • |@Path |该标签可用于类或者方法,表示定位此 RESTful 资源的路径|
  • |@Produces |该标签标注资源类或方法返回的 MIME 类型 , 也就是资源方法产生并且返回给客户端的响应消息的类型。例如 application/xml,application/json.|
  • |@Consumes |该标签标注资源类或方法可以接受的请求消息的类型,也就是客户端发送的请求中可以包含的 Http Entity 的类型。|
  • |@PathParam,@QueryParam,@HeaderParam,@CookieParam |该组分别标注方法的参数来自于 HTTP 请求的不同位置,例如,@PathParam 来自于 URL 的路径,@QueryParam 来自于 URL 的查询参数,@HeaderParam 来自于 HTTP 请求的头信息,@CookieParam 来自于 HTTP 请求的 Cookie。|
  • |@Context |该标签标注资源请求或者响应的上下文实例,例如我们可以再资源方法参数中注入 HttpServletRequest (@Context HttpServletRequest httpRequest) 来获取 Http 请求的相关信息。|

####Spring Bean 配置:

####Web.xml配置: 与构建一个简单的WebService一样: 使用Spring监听器加载BEAN配置文件;

注册CXF Servlet处理请求.

JAX-RS Simple Service
JAX-RS Simple Service
contextConfigLocation
WEB-INF/beans.xml
org.springframework.web.context.ContextLoaderListener
CXFServlet
org.apache.cxf.transport.servlet.CXFServlet
1
CXFServlet
/*

####测试

使用FireFox插件Open HTTPRequester post发送json数据

使用方法:

####更多实例 下载

查看${CXF_HOME}/simple
例如 ...\apache-cxf-3.1.4\samples\jax_rs\basic

###参考资料:

转载于:https://my.oschina.net/congwei/blog/541918

你可能感兴趣的文章
HTML/CSS一些需要注意的基础知识
查看>>
UML类图与类的关系详解
查看>>
Http 请求处理流程
查看>>
ASP.NET MVC3细嚼慢咽---(3)Razor视图语法
查看>>
你必须知道的.NET——内存分配
查看>>
继承与接口课堂作业
查看>>
详解Java中ArrayList、Vector、LinkedList三者的异同点(转)
查看>>
Cookie基础
查看>>
禁用apache模块
查看>>
[zz]堆栈溢出的运行时探测
查看>>
java 动态代理学习(Proxy,InvocationHandler)
查看>>
MySQL——数据类型
查看>>
Python--操作excel
查看>>
认识全面的null
查看>>
Mysql查询缓存Query_cache的功用
查看>>
Domains域
查看>>
zabbix系列~mysql进行监控
查看>>
Eclipse格式化代码,自动换行设置
查看>>
RabbitMQ消息队列
查看>>
进程的方法和属性介绍
查看>>