Spring框架中整合Hessian开发WebService

本文深入解析了使用Hessian作为轻量级Web服务实现框架的方法,包括服务端配置、接口定义与实现,以及客户端如何通过Hessian API进行调用。通过实例演示了如何快速构建和访问Web服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

和其他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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值