Apache CXF实战之三 传输Java对象
来源:互联网 发布:千方百剂医药软件8.23 编辑:程序博客网 时间:2024/06/05 03:12
Apache CXF实战之三 传输Java对象
本文链接:http://blog.csdn.net/kongxx/article/details/7527094
Apache CXF实战之一 Hello World Web Service
Apache CXF实战之二 集成Sping与Web容器
前面两篇文章介绍了怎样通过CXF来构建最基本的Web Service,并且其中暴露的接口参数和返回值都是字符串,下面来看看一个稍微复杂一点的例子。
1. 首先是一个普通的pojo对象,用来表示一个实体类
- package com.googlecode.garbagecan.cxfstudy.jaxws;
- import java.util.Date;
- 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);
- }
- }
- package com.googlecode.garbagecan.cxfstudy.jaxws;
- import javax.jws.WebMethod;
- import javax.jws.WebParam;
- import javax.jws.WebResult;
- import javax.jws.WebService;
- @WebService
- public interface CustomerService {
- @WebMethod
- @WebResult Customer findCustomer(@WebParam String id);
- }
- package com.googlecode.garbagecan.cxfstudy.jaxws;
- import java.util.Calendar;
- public class CustomerServiceImpl implements CustomerService {
- public Customer findCustomer(String id) {
- Customer customer = new Customer();
- customer.setId("customer_" + id);
- customer.setName("customer_name");
- customer.setBirthday(Calendar.getInstance().getTime());
- return customer;
- }
- }
- package com.googlecode.garbagecan.cxfstudy.jaxws;
- import javax.xml.ws.Endpoint;
- import org.apache.cxf.interceptor.LoggingInInterceptor;
- import org.apache.cxf.interceptor.LoggingOutInterceptor;
- import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
- public class MyServer {
- private static final String address = "http://localhost:9000/ws/jaxws/customerService";
- public static void main(String[] args) throws Exception {
- // http://localhost:9000/ws/jaxws/customerService?wsdl
- JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
- factoryBean.getInInterceptors().add(new LoggingInInterceptor());
- factoryBean.getOutInterceptors().add(new LoggingOutInterceptor());
- factoryBean.setServiceClass(CustomerServiceImpl.class);
- factoryBean.setAddress(address);
- factoryBean.create();
- }
- }
- package com.googlecode.garbagecan.cxfstudy.jaxws;
- import java.net.SocketTimeoutException;
- import javax.xml.ws.WebServiceException;
- import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
- public class MyClient {
- public static void main(String[] args) throws Exception {
- JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
- factoryBean.setAddress("http://localhost:9000/ws/jaxws/customerService");
- factoryBean.setServiceClass(CustomerService.class);
- Object obj = factoryBean.create();
- CustomerService customerService = (CustomerService) obj;
- try {
- Customer customer = customerService.findCustomer("123");
- System.out.println("Customer: " + customer);
- } catch(Exception e) {
- if (e instanceof WebServiceException
- && e.getCause() instanceof SocketTimeoutException) {
- System.err.println("This is timeout exception.");
- } else {
- e.printStackTrace();
- }
- }
- }
- }
首先运行MyServer类,然后运行MyClient类来验证Web Service。
0 0
- Apache CXF实战之三 传输Java对象
- Apache CXF实战之三 传输Java对象
- Apache CXF实战之三 传输Java对象
- Apache CXF实战之三 传输Java对象
- Apache CXF实战之三:传输Java对象
- Apache CXF实战之三 传输Java对象
- Apache CXF实战之二 传输pojo对象
- Java Socket实战之三 传输对象
- Java Socket实战之三 传输对象
- Java Socket实战之三 传输对象
- Java Socket实战之三 传输对象 .
- Java Socket实战之三 传输对象
- Java Socket实战之三 传输对象
- Java Socket实战之三:传输对象
- Java Socket实战之三 传输对象
- Java Socket实战之三 传输对象
- Java Socket实战之三 传输对象
- Java Socket实战之三 传输对象
- 如何使用NFC功能在SIM卡中存储Android应用的数据
- 机器学习之线性回归(Linear Regission) 、 Logistic Regission
- <s:property>使用
- Oracle 索引详解
- 正则表达式实例
- Apache CXF实战之三 传输Java对象
- 使用 Python 进行稳定可靠的文件操作
- 严苛模式(StrictMode)
- Hibernate开发常见问题的分析解决
- IOS几种简单有效的数组排序方法(原文:http://hi.baidu.com/ivan_xu/item/5d897c14d51bffe0ddeeca7c)
- android---xml---include用法(导入另一个XML文件到本布局中)
- Apache CXF实战之四 构建RESTful Web Service
- vc中常用的方法
- tmpfs 文件系统介绍