`
小菌子
  • 浏览: 22079 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

HttpInvoker远程调用实例

阅读更多
一、服务器端:

1、服务接口与实现类






Java代码

   1. package org.eesite.bbs.remote; 
   2.  
   3.  
   4.  
   5. public interface IRemoteService { 
   6.  
   7.     public String getString(String msg); 
   8.  
   9. } 
  10.  
  11.   
  12.  
  13. package org.eesite.bbs.remote; 
  14.  
  15.  
  16.  
  17. public class RemoteServiceImpl implements IRemoteService { 
  18.  
  19.     public String getString(String msg) { 
  20.  
  21.        String str = "正在请求调用...远程服务调用成功! " + msg; 
  22.  
  23.        return str; 
  24.  
  25.     } 
  26.  
  27. } 

package org.eesite.bbs.remote;

public interface IRemoteService {
    public String getString(String msg);
}

package org.eesite.bbs.remote;

public class RemoteServiceImpl implements IRemoteService {
    public String getString(String msg) {
       String str = "正在请求调用...远程服务调用成功! " + msg;
       return str;
    }
}

 



2、服务暴露配置remote-servlet.xml


Xml代码

   1. <?xml version="1.0" encoding="UTF-8"?> 
   2.  
   3. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
   4.  
   5. <beans> 
   6.  
   7.     <!-- 通过Spring HttpInvoker机制暴露远程访问服务 --> 
   8.  
   9.     <bean id="rmiService" 
  10.  
  11.        class="org.eesite.bbs.remote.RemoteServiceImpl" /> 
  12.  
  13.   
  14.  
  15.     <bean name="/remoteService" 
  16.  
  17. class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> 
  18.  
  19.        <property name="service" ref="rmiService" /> 
  20.  
  21.        <property name="serviceInterface" 
  22.  
  23.            value="org.eesite.bbs.remote.IRemoteService" /> 
  24.  
  25.     </bean> 
  26.  
  27. </beans> 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!-- 通过Spring HttpInvoker机制暴露远程访问服务 -->
    <bean id="rmiService"
       class="org.eesite.bbs.remote.RemoteServiceImpl" />

    <bean name="/remoteService"
class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
       <property name="service" ref="rmiService" />
       <property name="serviceInterface"
           value="org.eesite.bbs.remote.IRemoteService" />
    </bean>
</beans>









3、web.xml配置






Xml代码

   1. <!-- 加载服务配置文件 --> 
   2.  
   3. <context-param> 
   4.  
   5.        <param-name>contextConfigLocation</param-name> 
   6.  
   7.        <param-value>/WEB-INF/remote-servlet.xml</param-value> 
   8.  
   9.     </context-param> 
  10.  
  11.   
  12.  
  13. <!-- 配置DispatcherServlet --> 
  14.  
  15.     <servlet> 
  16.  
  17.         <servlet-name>remote</servlet-name> 
  18.  
  19.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
  20.  
  21.         <!-- 配置该Servlet随应用启动时候启动 --> 
  22.  
  23.         <load-on-startup>1</load-on-startup> 
  24.  
  25.     </servlet> 
  26.  
  27. <!-- 配置DispatcherServlet映射的url --> 
  28.  
  29.     <servlet-mapping> 
  30.  
  31.        <servlet-name>remote</servlet-name> 
  32.  
  33.        <url-pattern>/remoting

      public class TestRemote {

      

        

          public static void main(String[] args) {

             ApplicationContext applicationContext = new ClassPathXmlApplicationContext("remote.xml");

             IRemoteService service = (IRemoteService) applicationContext

                    .getBean("remoteService");

             String msg = service.getString("哈哈,我来了!");

             System.out.println(msg);

          }

      }

      

      测试结果:正在请求调用...远程服务调用成功! 哈哈,我来了!
分享到:
评论
1 楼 showphee 2012-04-11  
用不了,忽悠人吧,调试有问题

相关推荐

    spring远程调用简单实例

    要实现Spring的HTTP Invoker远程调用,我们需要以下几个步骤: 1. **服务提供方配置**:创建服务接口,并实现该接口。在Spring配置文件中定义一个bean,标记为`@Service`,并指定接口类型。此外,还需要配置`...

    使用httpInvoker提供远程服务

    使用HttpInvoker服务出口商(HttpInvokerServiceExporter)可以将普通的JavaBean实例转换为远程服务。这个过程类似于HessianServiceExporter,但更注重于Java对象的序列化。下面是一个使用...

    httpinvoker的使用实例

    HTTPInvoker是Spring框架中的一种远程调用机制,它允许客户端通过HTTP协议来调用服务器端的方法,实现远程服务的透明化访问。这个技术基于HTTP,所以具有较好的穿透性,适用于内网或者对安全性要求不高的环境。在这...

    Spring HttpInvoker的封装

    HttpInvoker是Spring框架的一部分,它提供了一种基于HTTP协议的远程调用机制,使得不同网络环境中的Java应用之间能够进行安全、高效的通信。本篇文章将深入探讨Spring HttpInvoker的原理以及如何对其进行封装,以便...

    Hessian 、 HttpInvoker 、 XFire 、 Axis

    Hessian、HttpInvoker、XFire和Axis是四种常见的远程调用框架,它们各自有不同的特性和应用场景。 Hessian是一种轻量级的二进制RPC协议,它通过HTTP进行传输,减少了网络开销,提高了服务调用效率。Hessian提供了...

    用Http Invoker实现RCP客户端与后台的交互

    - **HttpInvokerRequestExecutor**:客户端组件,用于处理HTTP请求和响应,实现远程调用。 - **HttpInvokerProxyFactoryBean**:客户端代理工厂,用于创建客户端的代理对象,使客户端可以像调用本地方法一样调用...

    spring httpInvoker示例

    在本文中,我们将深入探讨如何使用Spring框架中的HTTP Invoker组件进行远程方法调用(RMI)的实例。HTTP Invoker是Spring框架...对于初学者来说,这个例子是一个很好的起点,可以帮助理解Spring框架如何处理远程调用。

    http接口相关介绍

    Spring HTTP Invoker是Spring框架提供的一个远程调用模型,它允许通过HTTP进行远程调用,这意味着可以在防火墙环境下实现服务间的通信。与传统的远程过程调用(RPC)不同,Spring HTTP Invoker简化了客户端和服务端...

    外部接口调用 使用spring4+hessian4实例(二)

    它提供了多种集成远程服务的方式,包括RMI、HTTP Invoker、Hessian等。在Spring中配置Hessian服务,我们可以利用Spring的自动装配能力,简化服务的发布和消费过程。 要实现Spring4与Hessian4的结合,你需要完成以下...

    Spring(RMI)实例

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

    java远程通讯技术及简单实现.docx

    Java远程通讯技术是分布式服务框架中的关键组成部分,它允许不同机器上的应用...然而,随着技术的发展,出现了如Hessian、HttpInvoker等更高级别的封装工具,这些工具简化了开发者的使用,但理解底层原理仍然是必要的。

    第四课:Dubbo调用模块详解1

    Dubbo通过动态代理技术(如Javassist)生成服务代理类,使得消费者可以像调用本地方法一样调用远程服务,隐藏了远程调用的复杂性。例如,在`com.alibaba.dubbo.config.ReferenceConfig#createProxy`方法中,会根据...

    spring RMI 实例

    同时,随着Java技术的发展,虽然RMI在一些场景下依然有用,但很多现代的分布式通信框架,如Spring的JMS、HTTP Invoker、Hessian、 Burlap等,以及基于HTTP/REST的Web服务,已经提供了更灵活、更高效的选择。...

    rmi实例(Spring整合)

    4. **配合Spring Remoting**:Spring Remoting提供了一种抽象层,可以轻松地切换到其他远程调用机制,如Hessian、 Burlap或HTTP Invoker。这意味着如果你的系统开始时使用RMI,但后来希望切换到其他协议,Spring ...

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

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

    hessian 实例

    远程调用方法就是HttpInvoker:他也是将参数和返回值通过Java的序列化机制进行编组和反编组,它具有RMI的支持所有可序列化对象的优点。试使用Http协议传输二进制流的,同时又具有Hessian、Burlap(传输xml文本)的...

    carmine:使用 HTTP(S) 的轻量级 Java RMI 替代方案

    该库为 (远程方法调用)或 [Spring HTTP Invoker]( ),使用HTTP(S)协议进行客户端和服务器端之间的通信。 主要特征 Java 到 Java 的远程方法调用是使用HTTP(S)协议完成的 在客户端处理远程对象仅在实例化过程中...

    dubbo-2.5.6源码tar.gz

    Invocation则封装了远程调用的相关信息,如方法名、参数等。通过动态代理,Dubbo将调用转换为对Invoker的调用,实现了透明化的远程访问。 三、服务注册与发现 Dubbo采用基于ZooKeeper的服务注册与发现机制。在`org....

    DWR初学者笔记

    - **`creator`属性**:指定如何创建要远程调用的类的实例。 - `new`:使用类的默认构造方法创建实例。 - `scripted`:允许使用脚本语言创建实例,如使用Beanshell。 - `spring`:从Spring容器中获取Bean实例。 ...

    分布式服务框架 dubbox

    - 远程调用过程包括客户端发起请求、服务端处理请求并返回结果、网络传输等环节,涉及请求编解码、连接管理等技术。 3. **服务治理**: - 负载均衡:Dubbo 提供多种负载均衡策略,如 Random、RoundRobin、...

Global site tag (gtag.js) - Google Analytics