国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java學習之路-Hessian學習

2019-11-14 21:43:38
字體:
來源:轉載
供稿:網友
java學習之路-Hessian學習

  Hessian是基于HTTP的輕量級遠程服務解決方案,Hessian像Rmi一樣,使用二進制消息進行客戶端和服務器端交互。但與其他二進制遠程調用技術(例如Rmi)不同的是,它的二進制消息可以移植其他非Java的語言中?! ∫?、創建Hessian程序的4個步驟    1、定義一個遠程接口的接口?!   ?、定義一個實現該接口的類。    3、在web.xml中定義導出Hessian服務需要的信息。    4、編寫客戶端訪問代碼?! 《⒊绦虻木唧w實現    一、首先我們先創建Web項目,并新建一個實體類,這個類需要實現Serializable接口。

 1 package entity;  2 import java.io.Serializable;  3 public class Book implements Serializable {  4   PRivate String name;  5   private double price;  6   public String getName() {  7     return name;  8   }  9   public void setName(String name) { 10     this.name = name; 11   } 12   public double getPrice() { 13     return price; 14   } 15   public void setPrice(double price) { 16     this.price = price; 17   } 18 } 

    二、創建一個接口

1 package service; 2 import java.util.List; 3 import entity.Book; 4 public interface BookService { 5   List<Book> getList(); 6 } 

    三、創建一個類實現步驟二中的接口,并且這個類需要繼承HessianServlet類(這里需要Hessian的jar文件可以到這個網站下載http://hessian.caucho.com/#Java)

 1 package service.impl;  2 import java.util.ArrayList;  3 import java.util.List;  4 import service.BookService;  5 import com.caucho.hessian.server.HessianServlet;  6 import entity.Book;  7 public class BookServiceImpl extends HessianServlet implements BookService {  8     public List<Book> getList() {  9         List<Book> list=new ArrayList<Book>(); 10         Book b1=new Book(); 11         b1.setName("《信息簡史》"); 12         b1.setPrice(56); 13         Book b2=new Book(); 14         b2.setName("《黑客與畫家》"); 15         b2.setPrice(48); 16         list.add(b1); 17         list.add(b2); 18         return list; 19     } 20 21 } 

    四、到WEB-INF下的web.xml中配置信息

<servlet>     <servlet-name>book</servlet-name>     <servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>     <init-param>         <param-name>home-api</param-name>         <param-value>service.BookService</param-value>     </init-param>     <init-param>         <param-name>home-class</param-name>         <param-value>service.impl.BookServiceImpl</param-value>     </init-param> </servlet> <servlet-mapping>     <servlet-name>book</servlet-name>     <url-pattern>/book</url-pattern> </servlet-mapping>                     

      配置好之后,部署項目到Tomcat服務器,并啟動服務。

    五、編寫客戶訪問代碼

 1 package test;  2 import java.util.List;  3 import service.BookService;  4 import com.caucho.hessian.client.HessianProxyFactory;  5 import entity.Book;  6 public class Test {  7   public static void main(String[] args) {  8     String url="http://127.0.0.1:8080/test/book";  9     HessianProxyFactory factory=new HessianProxyFactory(); 10     try { 11       BookService bookService=(BookService) factory.create(BookService.class, url); 12       List<Book> list = bookService.getList(); 13       for (Book book : list) { 14         System.out.println(book.getName()+",定價為:"+book.getPrice()+"元。"); 15       } 16     } catch (Exception e) { 17       e.printStackTrace(); 18     } 19   } 20 } 

      運行代碼,控制臺顯示結果為      ===========控制臺============      《信息簡史》,定價為:56.0元?!      逗诳团c畫家》,定價為:48.0元?!     ?============================

接下來我們來講一下Spring整合Hessian

Spring整合Hessian

  注意事項:

      Hassian 3.2.0采用了新的Hassian 2協議,而Spring2.5.6 只支持Hassian 1協議,所以spring 2.5.6所能支持的最大版本為Hassian 3.1.6,最好使用spring 2.5.6附帶的版本Hassian 3.1.3,而對Hassian 2的支持,需要 Spring 3.0。

  一、首先我們創建一個接口

1 package service;2 import java.util.List;3 import entity.Book;4 public interface BookService {5     List<Book> getList();6 }

  二、編寫一個類,只需實現步驟一中的接口

 1 package service.impl; 2 import java.util.ArrayList; 3 import java.util.List; 4 import service.BookService; 5 import entity.Book; 6 public class BookServiceImpl implements BookService { 7     public List<Book> getList() { 8         List<Book> list=new ArrayList<Book>();  9         Book b1=new Book(); 10         b1.setName("《信息簡史》"); 11         b1.setPrice(56); 12         Book b2=new Book(); 13         b2.setName("《黑客與畫家》"); 14         b2.setPrice(48); 15         list.add(b1); 16         list.add(b2); 17         return list; 18     }19 }

  三、我們在WEB-INF下的web.xml中配置SpringMVC需要的信息(spring整合hessian需要用到SpringMVC)

  <context-param>      <param-name>contextConfigLocation</param-name>      <param-value>classpath:applicationContext.xml</param-value>  </context-param>  <listener>      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>   <servlet>      <servlet-name>springmvc</servlet-name>      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  </servlet>  <servlet-mapping>      <servlet-name>springmvc</servlet-name>      <url-pattern>/</url-pattern>  </servlet-mapping>

  四、在applicationContext.xml配置bean信息

    <bean id="bookService" class="service.impl.BookServiceImpl"></bean>        <bean id="BookService"        class="org.springframework.remoting.caucho.HessianServiceExporter"        p:service-ref="bookService"        p:serviceInterface="service.BookService"    />

  五、現在WEB-INF目錄下新建springmvc-servlet.xml文件,并配置一下。(可以把applicationContext.xml拷到目錄下改一下名字)

    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">        <property name="mappings">            <props>                <prop key="/book">BookService</prop>            </props>        </property>    </bean>

  六、接下我們應該在客戶端程序applicationContext.xml中配置獲取服務的bean信息(我這里是在同一個applicationContext.xml文件中編寫,但不影響測試功能)

    <bean id="getBookService"        class="org.springframework.remoting.caucho.HessianProxyFactoryBean"        p:serviceUrl="http://127.0.0.1:8080/test/book"        p:serviceInterface="service.BookService"    />

  七、現在我們編寫一下測試代碼,在運行下面代碼之前需要把項目部署到Tomcat中,并運行Tomcat

 1 package test; 2 import java.util.List; 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 import service.BookService; 6 import entity.Book; 7 public class Test { 8     public static void main(String[] args) { 9         ApplicationContext cxt=new ClassPathXmlApplicationContext("applicationContext.xml");10         BookService bookService=(BookService) cxt.getBean("getBookService");11         List<Book> list = bookService.getList();12         for (Book book : list) {13             System.out.println(book.getName()+",定價為:"+book.getPrice()+"元。"); 14         }15     }16 17 }

      運行代碼,控制臺顯示結果為      ===========控制臺============      《信息簡史》,定價為:56.0元?!      逗诳团c畫家》,定價為:48.0元?!     ?============================

到這里我們已經學習spring和怎么整合hessian了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遵义市| 法库县| 呼伦贝尔市| 上虞市| 鄂托克旗| 彭山县| 万源市| 砚山县| 丹凤县| 武威市| 固原市| 石柱| 平南县| 益阳市| 和林格尔县| 洞口县| 岢岚县| 盐亭县| 饶河县| 牟定县| 沿河| 锡林郭勒盟| 若羌县| 原平市| 永福县| 麻江县| 安庆市| 阳新县| 花垣县| 封开县| 兴宁市| 新郑市| 郓城县| 万全县| 南郑县| 南充市| 腾冲县| 宁夏| 宿松县| 双牌县| 嵩明县|