使用Spring和Tomcat发布CXF REST WebService

与发布SOAP WS一样, 同样需要在web.xml文件中配置CXFServlet:

    <!--cxf的Servlet-->
    <servlet>
        <servlet-name>CXFServlet</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/ws/*</url-pattern>
    </servlet-mapping>

---

其次在Spring配置文件中加入如下配置:

<bean id="restService" class="cn.lg.ws.rest.RestServiceImpl"/>

    <!-- 发布REST WebService -->
    <jaxrs:server id="restServiceContainer" address="/cxf">
        <!--输入拦截器设置-->
        <jaxrs:inInterceptors>
        </jaxrs:inInterceptors>

        <!--输出拦截器设置-->
        <jaxrs:outInterceptors>
        </jaxrs:outInterceptors>

        <!--WebService服务类-->
        <jaxrs:serviceBeans>
            <ref bean="restService"/>
        </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:providers>
        </jaxrs:providers>
    </jaxrs:server>

---

其中RestServiceImpl类还是上一节中的服务实现类。

当Tomcat成功启动后,使用浏览器访问: http://localhost:8080/webapp/ws/   

如下图说明服务发布成功(忽略SOAP服务):

 

使用浏览器访问: http://localhost:8080/webapp/ws/cxf/rest/get/123    

注意此时端口为8080,其中ws是servlet中的url,cxf是jaxrs:server中配置的path,rest是服务类上的path,get是方法的path,123是方法的参数

 

上一节中使用了cxf的API来调用服务,在这里同样可以调用成功:

 

 

 

end

posted @ 2017-03-22 21:56  dahuandahuan  阅读(1063)  评论(0编辑  收藏  举报