`
weishuwei
  • 浏览: 325981 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hessian或Burlap远程调用服务器端

阅读更多

因为我用spring管理bean,所以要先在web.xml配置相关信息
[!--  spring listener --]
[listener]
   [listener-class]org.springframework.web.context.ContextLoaderListener[/listener-class]
[/listener]
 
[!-- server: RemoteService Hessian config file --]
[servlet]
   [servlet-name]remote[/servlet-name]
   [servlet-class]org.springframework.web.servlet.DispatcherServlet[/servlet-class]
   [load-on-startup]2[/load-on-startup]
[/servlet]

通过DispatcherServlet,我们把含remote的来访URL交给hessian处理
[servlet-mapping]
   [servlet-name]remote[/servlet-name]
   [url-pattern]/remote/*[/url-pattern]
[/servlet-mapping]

另外我们单独配置了一个remote-servlet.xml,注意看下面的
 [context-param]
    [param-name]contextConfigLocation[/param-name]
    [param-value]/WEB-INF/applicationContext.xml[/param-value]
    [!--  [param-value]/WEB-INF/remote-servlet.xml[/param-value]--]
 [/context-param]
我把这个文件在web.xml里的配置注释掉了,照样起作用,这是因为spring的web包默认要读取这个文件,当然不一定要命名为remote-servlet.xml,spring会按照一定的命名规范读取相应的文件的,以下是我的remote-servlet.xml的配置:

[beans]
 [description]server properties[/description]

远程调用的实现类 
[bean id="myService"
  class="org.wsw.framework.remoteservice.imp.MyServiceImpl"]
  [property name="actCodeService"]
   [ref local="sysActCodeServiceServerSide" /]
  [/property]
  [property name="courseItemPersonalDAO"]
   [ref bean="courseItemPersonalDAO" /]
  [/property]
 [/bean]

 [!--InsertServiceSysActCode--]
 [bean id="sysActCodeServiceServerSide"
  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"]
  [property name="transactionManager"]
   [ref bean="transactionMgr"/]
  [/property]
  [property name="target"]
   [ref local="sysActCodeTargetServerSide" /]
  [/property]
  [property name="transactionAttributes"]
   [props]
    [prop key="get*"]PROPAGATION_REQUIRED[/prop]
    [prop key="add*"]PROPAGATION_REQUIRED[/prop]
    [prop key="update*"]PROPAGATION_REQUIRED[/prop]
    [prop key="delete*"]PROPAGATION_REQUIRED[/prop]
    [prop key="create*"]PROPAGATION_REQUIRED[/prop]
    [prop key="find*"]PROPAGATION_REQUIRED[/prop]
   [/props]
  [/property]
 [/bean]
 [bean id="sysActCodeTargetServerSide"
  class="org.wsw.service.spring.SysActCodeServiceSpringImplServerSide"]
  [property name="baseDao"]
   [ref local="sysActCodeDaoServerSide" /]
  [/property]
 [/bean]
 [bean id="sysActCodeDaoServerSide"
  class="org.wsw.service.dao.hibernate.SysActCodeDaoImpl"]
  [property name="sessionFactory"]
   [ref bean="sessionFactory"/]
  [/property]
 [/bean]

远程调用的接口,注意这里bean的name属性,当然要是用burlap,用BurlapServiceExplorter
 [bean name="/remoteService"
  class="org.springframework.remoting.caucho.HessianServiceExporter"]
  [property name="service"]
   [ref local="myService"/]
  [/property]
  [property name="serviceInterface"]
   [value]
    org.wsw.framework.remoteservice.MyService
   [/value]
  [/property]
 [/bean]

[/beans]

分享到:
评论

相关推荐

    远程调用的几种方式.pdf

    EJB是Java EE的一部分,提供了一种在服务器端部署和管理组件的方式,它支持远程调用,但更倾向于企业级应用,涉及到事务管理、安全性、持久化等高级特性。 JMS则是消息中间件,它不直接处理远程方法调用,而是通过...

    rpc 远程调用

    为了实现这一点,客户端需要一个代理对象,这个代理对象负责将本地的接口调用转化为远程调用。例如,Spring框架的`JDK Proxy`或`CGLIB`可以用来创建动态代理,使得客户端可以透明地调用远程服务。 2. **序列化与反...

    hessian java +c# 数据测试

    在IT行业中,跨平台通信是常见的需求,而Hessian作为一种二进制协议,因其轻量级、...在实际开发中,开发者需要理解Hessian的工作原理,熟练掌握两端的库使用,确保数据正确传输和解析,从而实现高效稳定的远程调用。

    dwr入门学习第一课范例

    DWR使得JavaScript可以直接调用服务器端的Java方法,简化了异步数据交换,提高了Web应用的用户体验。 在这个“dwr入门学习第一课范例”中,我们将探讨如何使用DWR来实现以下几个关键功能: 1. **用户名检测**:在...

    Java远程通讯可选技术及原理

    Hessian和Burlap是二进制和文本的RPC协议,它们提供了轻量级的远程调用解决方案,适合对性能要求较高的场景。 JMS(Java Message Service)是Java平台的消息队列标准,它允许应用程序之间异步发送和接收消息,适用...

    Java远程技术.pdf

    skeleton对象存在于服务器端,它接收消息并将其转换为对应的方法调用,最后返回调用结果。 4. RMI除了标准的RMI外,还支持一些扩展协议: - HTTP RMI:允许RMI通信通过HTTP协议进行,常用于防火墙后面的通信。 - ...

    Spring(RMI)实例

    Spring框架是Java开发中广泛应用的轻量级框架,它提供了丰富的功能来简化应用程序的构建...同时,这也是一个很好的起点,可以帮助开发者进一步探索Spring与其他远程调用协议,如Hessian、 Burlap或HTTP Invoker的集成。

    Java远程通讯可选技术及原理.docx

    RMI是Java平台特有的一种远程调用协议,它实现了RPC(Remote Procedure Call)模式。RMI允许Java对象在不同的JVM之间进行方法调用。在RMI中,客户端通过stub对象发起请求,请求被序列化并通过Socket发送到服务器。...

    java_rmi文档

    - ** skeletons**:在远程服务器上,用于接收和执行远程调用的代理。 - **注册表**:RMI注册表(RMIREGISTRY)是服务发现机制,用于查找和绑定远程对象的引用。 2. **RMI工作流程** - **导出远程对象**:在...

    dwr中文教程~转载的,共享一下

    1. **Remoting**:远程方法调用,DWR允许JavaScript直接调用服务器上的Java方法,就像它们是本地函数一样,这大大提高了Web应用的响应速度。 2. **AJAX**:DWR通过AJAX技术实现实时更新页面,无需刷新整个页面,...

    spring rmi 简单应用

    同时,RMI也可以与Spring的其他远程服务支持,如Hessian、 Burlap等相结合,实现不同类型的远程调用。 总的来说,Spring RMI为开发者提供了一种简洁且强大的方式来实现分布式系统的组件交互,降低了远程服务开发的...

    java项目使用spring rmi所涉及到的包

    - `org.springframework.remoting`: 这是Spring的远程调用支持包,包含了各种远程调用协议的实现,如HTTP Invoker、Hessian、 Burlap等。尽管不是直接针对RMI,但提供了远程调用的通用抽象。 - `org.spring...

    springRMI接口实现

    8. **替代方案**:随着技术的发展,Spring RMI已经被其他更现代的远程调用协议如Hessian、 Burlap、JMS、RESTful API等所取代。这些协议提供了更好的跨语言支持、更高的性能和更丰富的功能。 理解并熟练掌握Spring ...

    RPC通信模型(java)

    客户端通过引用远程接口,实际上是在调用服务器上的远程实现。 4. **序列化与反序列化**: 在RPC通信中,Java对象需要被转换为字节流以便在网络中传输。这需要实现Serializable接口,进行序列化。服务器端接收到...

    spring RMI 实例

    2. **服务实现(Service Implementation)**:这是服务接口的具体实现,通常运行在服务器端。例如,我们创建一个`MyServiceImpl`类,实现`MyService`接口,并提供具体的功能实现。 ```java @Service("myService") ...

    Spring 2.5 开发手册

    在服务集成方面,手册介绍了Spring的Remoting特性,如RMI、HTTP Invoker、Hessian和 Burlap等远程调用协议,以及Spring对Web服务(SOAP和RESTful)的客户端和服务器端支持。 在测试方面,手册提供了关于单元测试和...

    分布式JAVA应用+基础与实践

    EJB是Java EE的一部分,提供了组件模型来构建可部署在服务器端的分布式企业应用。EJB有三种类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans),分别用于业务逻辑...

    一个基于Java的RPC工具.zip

    - **Hessian和Burlap**: 这是两个轻量级的RPC框架,它们提供二进制和XML序列化协议,简化跨语言的RPC调用。 - **gRPC**: Google开源的高性能、通用的RPC框架,基于HTTP/2协议,支持多种语言,包括Java,提供了强大...

    简单了解Spring Web相关模块运行原理

    WebSocket 是一种双向通信协议,允许客户端和服务器端之间的实时通信。spring-websocket 模块提供了对 WebSocket 的支持,允许开发者使用 Spring Framework 来开发实时通信的应用程序。 Spring Framework 提供了...

Global site tag (gtag.js) - Google Analytics