对于采用CXF框架与Spring集成来开发Rest风格的接口服务网上也有大量的文章可以参考,在这里只做一个简单的重要过程和步骤的记录。
1. 建立一个Web Project工程项目,同时引入CXF框架Library,同时还引入jsr311-api-1.1.1.jar包,版本可以自己选择一个版本即可。假设我们建立TestRest名称的Web项目。
2. 在引入完成后,我们建立一个简单的接口类和接口实现,实际上着部分的开发和传统Java接口和接口实现开发完成相同,只是将我们传统实现的Java API接口通过增加注解后发布为一个Rest WebService接口。比如一个简单的注册接口类,首先要在类上面增加注解,定义具体的Path路径,其次要在方法上增加注解,说明该方法发布为Rest接口后的一些关键信息,包括参数解析,编码,消息格式等。
对于接口实现类上面增加路径注解: @Path(value = "/")
对于方法实现上参考如下:
@POST //指定请求方式
@Path("/regedit/{username}/{password}") //指定路径和参数映射
@Produces(MediaType.APPLICATION_JSON) //指定数据格式
public String regedit(@PathParam("username") String username, @PathParam("password") String password) throws IOException {
return username + "Register Success";
}
3. 可以看到整体实现基本和传统Java开发一样。在接口类和接口实现类增加好后,最重要的工作还是和Spring集成的两个配置文件的编写。一个是applicationContext-server.xml文件,一个是web.config文件。
在applicationContext-server.xml文件中实现Java API接口发布为Rest接口时候的具体映射。
而对于web.config服务和传统CXF框架发布SOAP WS服务内容基本一样。
我们在web.xml中配置了/services/*
那么我们的地址为:http://localhost:8080/TestRest/services/ 。
其次我们在spring配置文件中配置了 ,所以我们的地址应该为http://localhost:8080/TestRest/services/regedit/。
这样我们的基本服务地址就确定了。在访问http://localhost:8080/TestRest/services/地址的时候我们可以查看到具体的Rest接口服务的发布地址,比如http://localhost:8080/TestRest/services/regedit?WADL。这个时候我们可以直接采用SoapUI工具对这个地址进行脚本录制,然后进行接口服务的测试。
另外尝试了下通过FireFox浏览器的RestClient插件进行接口测试,虽然后面也增加了Http Header的相关属性,但是仍然没有测试成功,估计是对于Request输入的结构有问题导致。