首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

cxf、spring集成webservice 配置restful形式

2013-10-03 
cxf、spring集成webservice 配置restful方式刚刚配置完spring集成cxf使用restful方式部署webservice,整个过

cxf、spring集成webservice 配置restful方式

刚刚配置完spring集成cxf使用restful方式部署webservice,整个过程感觉就是爽和简单,欢迎抛砖引玉

第一步:当然是下载jar包了

? ? ? ? ? ? 使用到的jar有以下:

? ? ? ? ? ? 1、spring jar包我就不说了,地球人都知道

? ? ? ? ? ? 2、cxf-2.6.9.jar 最新版是2.7X版本,我开始下的2.7版本,发现支持的JSR是2.0,起码需要JSR-339.api.jar,但是我下的是jsr311-api-1.1.1.jar,只能支持2.7以下版本,后来又重新下了cxf2.6.9在这里记录下避免忘记了。

? ? ? ? ? ? 3、jsr311-api-1.1.1.jar

? ? ? ? ? ? 4、geronimo-servlet_3.0_spec-1.0.jar

? ? ? ? ? ? 5、neethi-3.0.2.jar

第二步: 配置项目中web.xml

? ? ? ? ? ? ?? <servlet>

? ? <servlet-name>CXFService</servlet-name>

? ? <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

</servlet>

?

<servlet-mapping>

? ? <servlet-name>CXFService</servlet-name>

? ? <url-pattern>/*</url-pattern>

</servlet-mapping>

?

?

第三步:

? ? ? ? ?新建appalicationcontext_cxf.xml

? ? ? ? ?内容如下

? ? ? ? ?<?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/beans?

? ? http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

? ? http://www.springframework.org/schema/context

? ? http://www.springframework.org/schema/context/spring-context-3.0.xsd

? ? http://cxf.apache.org/jaxws?

? ? http://cxf.apache.org/schemas/jaxws.xsd

? ? http://cxf.apache.org/jaxrs

? ? http://cxf.apache.org/schemas/jaxrs.xsd">

<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" 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>

?

</beans>

?

?

?

下面就是例子

? ? ?新建Sample接口类

? ??@Path(value = "/sample")

public interface Sample {

?

@GET

@Path("/bean/{id}")

@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })

public String getBean(@PathParam("id") int id);

?

@GET

@Path("/list/{id}")

@Produces({ "application/xml","application/json" })

public String getBean2(@PathParam("id") int id);

}

?

新建Sample接口的实现类

@Path(value = "/sample")

public class RESTSampleSource implements Sample {

?

@Override

@GET

@Path("/bean/{id}")

@Produces({ "application/xml", "application/json" })

public String getBean(@PathParam("id") int id) {

return "<xml>1</xml>";

}

?

?

@Override

@GET

@Path("/list")

@Produces({ "application/xml","application/json" })

public String getBean2(@PathParam("id") int id) {

return "{id:'123'}";

}

?

}

?

好了,启动发布

使用

http://localhost:8080/cxfWebservice/rest/sample/bean/123 ? ?默认返回xml

http://localhost:8080/cxfWebservice/rest/sample/list?id=1&_type=json? ?加入_type=json则可以返回json数据

热点排行