中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Apache CXF中如何傳輸Java對象

發布時間:2021-10-29 15:58:22 來源:億速云 閱讀:178 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關Apache CXF中如何傳輸Java對象,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

怎樣通過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);      }  }

2. 創建Web Service接口類

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);  }

3. 創建Web Service接口的實現類

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;      }  }

4. 下面是Server端的代碼

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();      }  }

5. 下面是Client端的代碼

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();              }          }      }  }

6.測試

首先運行MyServer類,然后運行MyClient類來驗證Web Service。

關于Apache CXF中如何傳輸Java對象就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐亭县| 肃宁县| 咸宁市| 临西县| 汶上县| 淳安县| 瑞金市| 五寨县| 中卫市| 婺源县| 土默特右旗| 巴青县| 金乡县| 尼木县| 肇源县| 定日县| 松江区| 渭南市| 中阳县| 磐安县| 龙川县| 古丈县| 西充县| 金昌市| 阿图什市| 淳安县| 仪征市| 万年县| 齐齐哈尔市| 大邑县| 潼南县| 尉氏县| 阿拉善盟| 南宫市| 东方市| 金华市| 沁水县| 南川市| 马边| 宁乡县| 阿勒泰市|