知识大全 Spring整合Hessian

Posted 版本

篇首语:人生遇到的每个人,出场顺序很重要,很多人如果换个时间认识,就会有不同的结局。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring整合Hessian相关的知识,希望对你有一定的参考价值。

Spring整合Hessian  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Spring让Hessian变得不但强大 而且易用 但是易用背后 却有不少陷阱!

  这个例子很简单 但实际上的确花费了我超过一小时的时间 排除了种种问题 最后问题终于水落石出

  整合以上篇Hello Hessian为基础 加入Spring框架 进行改进

  一 环境

  jdk

   mirror/tomcat/tomcat /v /bin/apache tomcat zip

   framework SEC with dependencies zip

  顺便说下 如果不说环境版本 很难保证你的程序在别的版本下能运行

  二 整合

   写Spring的发布Hessian服务的配置文件

  hessian servlet xml

   <!DOCTYPE beans PUBLIC //SPRING//DTD BEAN//EN beans dtd > <beans>         <bean id= defaultHandlerMapping class= springframework web servlet handler BeanNameUrlHandlerMapping />         <bean id= helloService class= lavasoft suths service HelloService />         <bean name= /hello class= springframework remoting caucho HessianServiceExporter >                 <property name= service ref= helloService />                 <property name= serviceInterface value= lavasoft suths service Hello />         </bean> </beans>

   配置web xml

   <?xml version= encoding= UTF ?> <web app xmlns=                  xmlns:xsi= instance                  xsi:schemaLocation=          app_ _ xsd                  version= >         <context param>                 <param name>contextConfigLocation</param name>                 <param value>                         /WEB INF/hessian servlet xml                 </param value>         </context param>         <servlet>                 <servlet name>hessian</servlet name>                 <servlet class> springframework web servlet DispatcherServlet</servlet class>                 <load on startup> </load on startup>         </servlet>         <servlet mapping>                 <servlet name>hessian</servlet name>                 <url pattern>/hessian/*</url pattern>         </servlet mapping> </web app>

  陷阱

  a)hessian servlet xml的文件名必须以<servlet name>hessian</servlet name>名字开头 并且加上 servlet xml一段 组成完整的文件名

  b)hessian servlet xml的文件名格式必须是[servlet name] servlet xml格式 否则出错

  三 部署应用

  因为涉及到类加载顺序问题 好用IDEA启动Tomcat测试老失败 不知道为啥!这次不用IDEA嵌入式启动Tomcat了 直接自己部署测试

  部署后 启动界面如下

  

  三 写测试

  这次测试 可以在上个例子的基础上进行修改来测试 根据上面的配置 那么请求HelloService的URL应该是//localhost /hessianapp/hessian/hello

   package lavasoft suths service client; import caucho hessian client HessianProxyFactory; import lavasoft suths service Hello; import MalformedURLException; /** * 客户端调用(会依赖服务接口) * * @author leizhimin : : */ public class Client         public static void main(String[] args) throws MalformedURLException                 String url = //localhost: /hessianapp/hessian/hello ;                 HessianProxyFactory factory = new HessianProxyFactory();                 Hello hello = (Hello) factory create(Hello class url);                 System out println(hello sayHello( Hessian ));         

  运行结果

   Hello Hessian! Process finished with exit code

  还有一种测试方法 就是在客户端也使用Spring 需要做个配置remoting client xml

   <!DOCTYPE beans PUBLIC //SPRING//DTD BEAN//EN beans dtd > <beans>         <bean id= helloServiceClient class= springframework remoting caucho HessianProxyFactoryBean >                 <property name= serviceUrl value=//localhost: /hessianapp/hessian/hello />                 <property name= serviceInterface value= lavasoft suths service Hello />         </bean> </beans>

  然后写个测试类

   package lavasoft suths service client; import lavasoft suths service Hello; import ntext ApplicationContext; import ntext support ClassPathXmlApplicationContext; /** * Spring整合Hessian 客户端测试 * * @author leizhimin : : */ public class TestClient         public static void main(String[] args)                 try                         ApplicationContext context = new ClassPathXmlApplicationContext( /remoting client xml );                         Hello hello = (Hello) context getBean( helloServiceClient );                         System out println(hello sayHello( Spring Hession ));                                  catch (Exception e)                         e printStackTrace();                          

  运行结果

   Hello Spring Hession! Process finished with exit code

  陷阱 实际上 看着代码好好 程序有时候还是不能跑 原因是Hessian的版本问题 这里推荐使用Spring自带的版本 就不会有问题了

  整个工程所以依赖的包

cha138/Article/program/Java/ky/201311/28360

相关参考

知识大全 spring集成hessian

  在webxml中的配置  <contextparam>  <paramname>contextConfigLocation</paramname>  <p

知识大全 Spring整合HIbernate

Spring整合HIbernate  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Spring整

知识大全 spring 整合strut2

Spring整合Struts    虽然Spring也提供了自己的MVC组件但一来Spring的MVC组件过于繁琐二    来Struts的拥护者实在太多因此很

知识大全 spring struts2 ibatis框架整合开发

这里主要介绍一下spring+struts+ibatis所需要的jar包文件spring所需包  以上包为spring配置基本包ibatis所需包  有解决方法的朋友们希望能回复  与struts整合

知识大全 Struts整合spring方法(三)

Struts整合spring方法(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Sprin

知识大全 Spring整合Quartz定时发送邮件

Spring整合Quartz定时发送邮件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  功能描述

知识大全 五步搞定Spring整合Strus

五步搞定Spring整合Strus  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  项目需要有St

知识大全 Spring2.5整合RMI技术

Spring2.5整合RMI技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java的RMI

知识大全 整合 JSF+Spring+Hibernate的小例子

整合JSF+Spring+Hibernate的小例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 Spring 和struts 整合的三种方式

Spring和struts整合的三种方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用Sp