使用CXF开发JAX-RS类型的WebService
1、JAXRSServerFactoryBean编程方式
访问方式:http://localhost:8080/cxf_spring_rest_server/ws/rest/student/querylist/001?_type=json
发布类:
public class StudentServer { public static void main(String[] args) { //使用jaxrsServerFactoryBean发布rest服务 JAXRSServerFactoryBean jaxrsServerFactoryBean = new JAXRSServerFactoryBean(); //设置rest的服务地址 jaxrsServerFactoryBean.setAddress("http://127.0.0.1:12345/rest"); //设置服务对象 jaxrsServerFactoryBean.setServiceBean(new StudentServiceImpl()); //设置资源 对象,如果有多个pojo资源 对象中间以半角逗号隔开 jaxrsServerFactoryBean.setResourceClasses(StudentServiceImpl.class); //发布rest服务 jaxrsServerFactoryBean.create(); } }
接口类:
@WebService @Path("/student") public interface StudentService { //查询学生信息 @GET //http的get方法 @Path("/query/{id}")//id参数通过url传递 @Produces(MediaType.APPLICATION_XML)//设置媒体类型xml格式 public Student queryStudent(@PathParam("id")long id); //查询学生列表 @GET //http的get方法 @Path("/querylist/{type}") @Produces({"application/json;charset=utf-8",MediaType.APPLICATION_XML})//设置媒体类型xml格式和json格式 //如果想让rest返回xml需要在rest的url后边添加?_type=xml,默认为xml //如果想让rest返回json需要在rest的url后边添加?_type=json public List<Student> queryStudentList(@PathParam("type") String type); }
实现类:
public class StudentServiceImpl implements StudentService { @Override public Student queryStudent(long id) { // 使用静态数据 Student student = new Student(); student.setId(id); student.setName("张三"); student.setBirthday(new Date()); return student; } @Override public List<Student> queryStudentList(String type) { // 使用静态数据 List<Student> list = new ArrayList<Student>(); Student student1 = new Student(); student1.setId(1000l); student1.setName("张三"); student1.setBirthday(new Date()); Student student2 = new Student(); student2.setId(1000l); student2.setName("张三"); student2.setBirthday(new Date()); list.add(student1); list.add(student2); return list; } }
2、与spring整合
<!-- service --> <bean id="studentService" class="cn.allan.ws.cxf.rest.service.StudentServiceImpl"/> <!-- 发布rest服务 使用jaxws:server和jaxws:endpoint可以发布服务 webservice地址=tomcat地址+cxf servlet的路径+/weather --> <jaxrs:server address="/rest"> <jaxrs:serviceBeans> <ref bean="studentService"/> </jaxrs:serviceBeans> </jaxrs:server>
❤本博客只适用于研究学习为目的,大多为学习笔记,如有错误欢迎指正,如有误导敬请谅解(本人尽力保证90%的验证和10%的猜想)。
❤如果这篇文章对你有一点点的帮助请给一份推荐! 谢谢!你们的鼓励是我继续前进的动力。
分类:
WebService
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
· 你所不知道的 C/C++ 宏知识
· 不到万不得已,千万不要去外包
· C# WebAPI 插件热插拔(持续更新中)
· 会议真的有必要吗?我们产品开发9年了,但从来没开过会
· 【译】我们最喜欢的2024年的 Visual Studio 新功能
· 如何打造一个高并发系统?