Spring框架中整合Hessian開發WebService

和其他Web服務的實現框架不同的是,Hessian是一個使用二進制Web服務協議的框架,它的好處在於免除了一大堆附加的API包,例如XML的處理之類的jar包,這也就是爲什麼說它是一個輕量級的Web服務實現框架的原因,這個原因還在於手機上的應用程序可以通過Hessian提供的API很方便的訪問Hessian的Web服務。

       服務端

  首先看web.xml中的配置(前提已導入Springmvc jar包)另外還需要一個(Hessian)jar包--hessian-4.0.37.jar(官網有下載)

          

 <servlet>  
       <servlet-name>hessianServer</servlet-name>  
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>WEB-INF/classes/WebSerivce-servlet.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>  
  
<servlet-mapping>  
       <servlet-name>hessianServer</servlet-name>  
       <url-pattern>/api/service/*</url-pattern>  
</servlet-mapping>  
<servlet-mapping>  
       <servlet-name>hessianServer</servlet-name>  
       <url-pattern>*.html</url-pattern>  
</servlet-mapping> 
  創建接口類: 

package hessian.inter;

public interface Service{
   public String getname(String name);
}
  服務接口實現:

   

package hessian.imp;

import hessian.inter.Serviceinter;

public class Myservice implements Service{
	@Override
	public String getname(String name) {
		// TODO Auto-generated method stub
		System.out.println("你調用了service端程序!");
		return name;
	}

}
  在mvc配置文件中發佈service

    

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>  
<bean id="myservice" class="hessian.imp.Myservice" />
    <bean name="/mytestservice" class="org.springframework.remoting.caucho.HessianServiceExporter">
          <property name="service" ref="myservice"/>
          <property name="serviceInterface" value="hessian.inter.Service" />
     </bean>
這樣服務就發佈成功 訪問服務的路徑是(http//:8080/項目名/imp/service/mytestservice)

 客戶端調用

   創建一個與對應服務相同方法的接口類(注意方法名要相同)

            

package hessian.client;

public interface Clientservice{
	 public String getname(String name);
}
   在spring核心配置文件中配置bean

      

 <bean id="Clientservice" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
     <property name="serviceUrl"  value="http://localhost:1527/HessianWebservice/api/service/mytestservice"/>
     <property name="serviceInterface" value="hessian.client.service"/>
     <property name="overloadEnabled" value="true" />  <!-- 支持方法重載 -->
    </bean>
   新建測試類

  

package hessian.client;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class testclient {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ApplicationContext context=new ClassPathXmlApplicationContext("SpringITschool-*.xml");
		  Clientservice service1=(Clientservice)context.getBean("Clientservice");
		  System.out.print(service1.getname("XXX"));  
	}

}

   測試結果-------輸出 XXX

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章