Spring整合CXF,发布RSETful 风格-配置WebService
三、配置我们的WebService,修改applicationContext-server.xml。这里主要是添加jaxrs标签的支持,修改头部文件如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:jaxws="http://cxf.apache.org/jaxws"xmlns:jaxrs="http://cxf.apache.org/jaxrs"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://cxf.apache.org/jaxwshttp://cxf.apache.org/schemas/jaxws.xsdhttp://cxf.apache.org/jaxrshttp://cxf.apache.org/schemas/jaxrs.xsd">特别注意上面加粗带下划线的部分,这是新增加的配置。我们发布restful WebService需要用到它。然后在配置文件中添加如下配置<import resource="classpath:META-INF/cxf/cxf.xml"/><import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/><import resource="classpath:META-INF/cxf/cxf-servlet.xml"/><bean id="restSample" class="com.hoo.service.RESTSampleSource"/><!-- 这里的地址很重要,客户端需要通过这个地址来访问WebService --><jaxrs:server id="restServiceContainer" address="/rest"><jaxrs:serviceBeans><ref bean="restSample" /></jaxrs:serviceBeans><jaxrs:extensionMappings><entry key="json" value="application/json" /><entry key="xml" value="application/xml" /></jaxrs:extensionMappings><jaxrs:languageMappings><entry key="en" value="en-gb"/></jaxrs:languageMappings></jaxrs:server>这样服务器端就完成了CXF RESTful WebService的发布,启动你的tomcat。然后在浏览器中服务地址:http://localhost:8000/CXFWebService/ (其实这里请求的是CXFServlet,你可以看看上一篇Spring整合CXF文章的web.xml的配置)
你就可以看到我们这里刚刚发布的RESTSample rest的WebService
你也可以看看里面的xml,也就是WebService的wsdl文件内容。我们找一个GET方式的WebService的方法,在浏览器中调用一下试试
http://localhost:8000/CXFWebService/rest/sample/bean/123
这个url对应到下面这个方法
@GET@Path("/bean/{id}")@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })public User getBean(@PathParam("id") int id)结果如下
一篇xml文档内容。
更多关系Spring的信息
Spring 论坛 http://www.itchm.com/forum-59-1.html