博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache CXF实现Web Service(3)——Tomcat容器和不借助Spring的普通Servlet实现JAX-RS(RESTful) web service...
阅读量:5279 次
发布时间:2019-06-14

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

起步

参照这一系列的另外一篇文章:

首先在eclipse中新建一个Dynamic Web Project,然后实现上篇文章中的所有类,唯一不同的是这里,我们不需要一个Server.java来启动一个Web Service。我们用CXF自带的org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet来在容器中启动一个Web Service服务。

pom.xml

4.0.0
com.cnblog.richaaaard.cxftest
cxf-test-servlet-rs-helloworld
war
1.0-SNAPSHOT
cxf-test-servlet-rs-helloworld Maven Webapp
http://maven.apache.org
3.1.4
org.apache.cxf
cxf-rt-frontend-jaxrs
${cxf.version}
org.apache.cxf
cxf-rt-transports-http
${cxf.version}
org.apache.cxf
cxf-rt-transports-http-jetty
${cxf.version}
org.apache.cxf
cxf-rt-rs-extension-providers
${cxf.version}
org.codehaus.jackson
jackson-xc
1.9.0
org.codehaus.jackson
jackson-jaxrs
1.9.0
javax.ws.rs
jsr311-api
1.1.1
org.slf4j
slf4j-api
1.5.8
org.slf4j
slf4j-simple
1.5.8
commons-httpclient
commons-httpclient
3.0
commons-io
commons-io
2.3
junit
junit
4.8.1
test
cxf
src/main/resources
src/main/java
**
**/*.java
org.mortbay.jetty
maven-jetty-plugin
/
9000
org.apache.maven.plugins
maven-compiler-plugin
1.7
1.7

  主要的配置都在web.xml中

cxf
cxf
cxf
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
jaxrs.serviceClasses
com.cnblog.richaaaard.cxftest.servlet.rs.helloworld.service.RoomService
jaxrs.providers
org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider
1
cxf
/services/*
60

  可以发现我们使用了org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet这个Servlet包括使用里面一些启动参数:

jaxrs.serviceClasses
jaxrs.providers

来配置RESTful Web Service,其参数与我们上篇文章中用代码JAXRSServerFactoryBean的参数设置一致。

启动测试

我们在Eclipse中,将Web项目在Tomcat中运行

Tomcat运行Run As... -> Run on Server

 

最后

我们用浏览器访问Tomcat默认的8080端口地址:http://localhost:8080/cxf/services/roomservice/room

补充 Servlet配置参数模板

(注意:这只是一个模板,需要修改相关参数,请勿直接复制粘贴到项目中)

CXFServlet
CXF Servlet
org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
jaxrs.serviceClasses
org.apache.cxf.systest.jaxrs.BookStore1, org.apache.cxf.systest.jaxrs.BookStore2
jaxrs.providers
org.apache.cxf.systest.jaxrs.BookStoreProvider1, org.apache.cxf.systest.jaxrs.BookStoreProvider2
jaxrs.schemaLocations
classpath:/WEB-INF/schemas/schema1.xsd classpath:/WEB-INF/schemas/schema2.xsd
jaxrs.inInterceptors
org.apache.cxf.systest.jaxrs.CustomInInterceptor
jaxrs.outInterceptors
org.apache.cxf.systest.jaxrs.CustomOutInterceptor
jaxrs.extensions
xml=application/xml json=application/json
jaxrs.properties
property1=value property2=value
1

  

 

参考:

http://zzxanadu.iteye.com/blog/542249(这仍然属于一个programatic实现的例子,只不过做到了servlet load方法中,未验证成功)

https://cwiki.apache.org/confluence/display/CXF20DOC/JAXRS+Services+Configuration#JAXRSServicesConfiguration-WithCXFNonSpringJaxrsServlet

 

 

转载于:https://www.cnblogs.com/richaaaard/p/5013352.html

你可能感兴趣的文章
使用xrdp或Xmanager 远程连接 CentOS6
查看>>
Linux误删恢复
查看>>
Unity调用Windows窗口句柄,选择文件和目录
查看>>
HashMap循环遍历方式
查看>>
React Native 入门 调试项目
查看>>
C# 通过 Quartz .NET 实现 schedule job 的处理
查看>>
关于java之socket输入流输出流可否放在不同的线程里进行处理
查看>>
目前为止用过的最好的Json互转工具类ConvertJson
查看>>
Day13
查看>>
tensorflow saver简介+Demo with linear-model
查看>>
Luogu_4103 [HEOI2014]大工程
查看>>
Oracle——SQL基础
查看>>
项目置顶随笔
查看>>
Redis的安装与使用
查看>>
P1970 花匠
查看>>
java语言与java技术
查看>>
NOIP2016提高A组五校联考2总结
查看>>
iOS 项目的编译速度提高
查看>>
table中checkbox选择多行
查看>>
Magento开发文档(三):Magento控制器
查看>>