Apache CXF中如何构建RESTful Web Service
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,Apache CXF中如何构建RESTful Web Service,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。介绍一
千家信息网最后更新 2025年01月17日Apache CXF中如何构建RESTful Web Service
Apache CXF中如何构建RESTful Web Service,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
介绍一下怎么通过CXF来发布RESTful的Web Service.
1. 首先是实体类,注意其中的@XmlRootElement注解
package com.googlecode.garbagecan.cxfstudy.jaxrs; import java.util.Date; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name="Customer") public class Customer { private String id; private String name; private Date birthday; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } @Override public String toString() { return org.apache.commons.lang.builder.ToStringBuilder.reflectionToString(this); } }
2. RESTful Web Service接口类,可以通过修改@Produces注解来声明暴露接口返回的json还是xml数据格式
package com.googlecode.garbagecan.cxfstudy.jaxrs; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; @Path(value = "/customer") @Produces("*/*") //@Produces("application/xml") //@Produces("application/json") public interface CustomerService { @GET @Path(value = "/{id}/info") Customer findCustomerById(@PathParam("id")String id); @GET @Path(value = "/search") Customer findCustomerByName(@QueryParam("name")String name); }
3. RESTful Web Service接口实现类
package com.googlecode.garbagecan.cxfstudy.jaxrs; import java.util.Calendar; public class CustomerServiceImpl implements CustomerService { public Customer findCustomerById(String id) { Customer customer = new Customer(); customer.setId(id); customer.setName(id); customer.setBirthday(Calendar.getInstance().getTime()); return customer; } public Customer findCustomerByName(String name) { Customer customer = new Customer(); customer.setId(name); customer.setName(name); customer.setBirthday(Calendar.getInstance().getTime()); return customer; } }
4. Server端代码
package com.googlecode.garbagecan.cxfstudy.jaxrs; import org.apache.cxf.interceptor.LoggingInInterceptor; import org.apache.cxf.interceptor.LoggingOutInterceptor; import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; public class MyServer { public static void main(String[] args) throws Exception { JAXRSServerFactoryBean factoryBean = new JAXRSServerFactoryBean(); factoryBean.getInInterceptors().add(new LoggingInInterceptor()); factoryBean.getOutInterceptors().add(new LoggingOutInterceptor()); factoryBean.setResourceClasses(CustomerServiceImpl.class); factoryBean.setAddress("http://localhost:9000/ws/jaxrs"); factoryBean.create(); } }
5. Client端代码
package com.googlecode.garbagecan.cxfstudy.jaxrs; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.GetMethod; public class MyClient { public static void main(String[] args) throws Exception { go("http://localhost:9000/ws/jaxrs/customer/1/info"); go("http://localhost:9000/ws/jaxrs/customer/search?name=abc"); } private static void go(String url) throws Exception { HttpClient client = new HttpClient(); GetMethod method = new GetMethod(url); int statusCode = client.executeMethod(method); if (statusCode != HttpStatus.SC_OK) { System.err.println("Method failed: " + method.getStatusLine()); } byte[] responseBody = method.getResponseBody(); System.out.println(new String(responseBody)); } }
6.测试
首先运行MyServer类,然后运行MyClient类来验证Web Service。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
接口
代码
注解
帮助
运行
清楚
内容
可以通过
实体
对此
数据
文章
新手
更多
格式
知识
行业
资讯
资讯频道
还是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全儿童画集合
花旗银行软件开发具体做啥
网络安全隐私事例
word 计算页行数据库
服务器入侵与攻击
java软件开发文档代码规范
百名网络技术服务有限公司
数据库锁定
东营软件开发培训班
超好用的免费在线服务器管理工具
天津软件开发公司erp
重庆项目软件开发靠谱吗
计算机网络技术及应用实训鉴定表
上海OA软件开发招聘网
如何防范网络安全翻译
找不到认证服务器
国外软件开发公司排名
学技术侦查网络安全
云服务器手机管理软件
银行软件开发外包人员面试题
三级小说软件开发
中国网络安全工资
使命召唤战区服务器经常断开
ddl对数据库的操作
服务器出现绿色框
军队网络安全与信息化建设
光猫怎么变扩印服务器
安全上网网络安全教育手抄报
嘉兴平台软件开发
软件开发失败