1、remoting-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//Spring//DTD Bean//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean name="/hello/find" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
<property name="service" ref="helloImpl" />
<property name="serviceInterface" value="com.IHello" />
</bean>
</beans>
备注:该文件必须放在“WEB-INF/”下面。
2、remoting-client.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//Spring//DTD Bean//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean name="testRemote" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
<property name="serviceUrl" value="http://localhost:8080/Test/remoting/hello/find" />
<property name="serviceInterface" value="com.inf.IHello" />
</bean>
</beans>
3、web.xml配置
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting</servlet-name>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
4、调用方法
方法一:
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
IHello hello = (IHello)context.getBean("testRemote");
Result result = hello.findByName("jack");
System.out.println(result.getLstUser().size());
备注:基于“remoting-client.xml”的配置
方法二:
//免配置
HttpInvokerProxyFactoryBean bean=new HttpInvokerProxyFactoryBean();
bean.setServiceUrl("http://localhost:8080/Test/remoting/hello/find");
bean.setServiceInterface(IHello.class);
bean.afterPropertiesSet();//必须
IHello hello = (IHello)bean.getObject();
Result result = hello.findByName("jack");
System.out.println(result.getLstUser().size());
5、优缺点和注意事项
1.优缺点
优点:效率高,几乎跟调用本地接口一样
缺点:不跨平台
2.注意事项
remoting服务 正好与 rest服务 互补,在参数传递和返回值上完全没有限制,能满足java用户的全部需求。
该文章基于上篇文章(rest服务例子:
http://hdxiong.iteye.com/admin/blogs/998069)
分享到:
相关推荐
这个“c# remoting简单例子”旨在帮助初学者理解Remoting的基本概念和工作原理,通过实际操作来体验分布式开发的魅力。 在.NET Remoting中,你可以创建一个远程对象,该对象可以在本地运行,也可以在远程计算机上...
Remoting 经典例子(服务器 客户端 相互调用实例),我就是学这个入门的,资源共享
这个“remoting的例子”涵盖了如何在两个独立的进程——firstexe(服务器端)和secondexe(客户端)之间进行通信。下面将详细介绍这个例子中的关键知识点。 1. **C# Remoting基础**: C# Remoting是.NET Framework...
本例“C# socket remoting 例子 源代码”结合了这两种技术,为我们提供了一个使用C#实现的远程方法调用(Remote Method Invocation, RMI)系统,通过Socket进行数据传输。 首先,让我们深入了解C#中的Socket编程。...
常用的Remoting宿主往往是Console,Windows服务。而用IIS作为宿主的情况并不多。前一段时间思考分布式系统的缓存设计时,考虑到使用多个Web应用程序(甚至包括Console,WinForm程序)一起共享数据的实现,就想到了...
比较经典的remoting例子 欢迎各位下载分享
在这个“Remoting小例子”中,可能会包含上述代码的简化版本,以及一些必要的配置文件(如app.config或web.config)来设置通道和服务信息。通过这个示例,你可以了解.NET Remoting的基本工作原理,以及如何在C#项目...
remoting 的例子,源码,有数据库,MRP 有学习 remoting 的可以看看,登入密码用户在数据库文件内, C#+SQL
描述提到“自己做的一个简单的例子,适合初学者”,这表明压缩包中可能包含了一个简单的.NET Remoting应用实例,它可能是两个或更多的项目,其中一个作为服务器端(Server),另一个作为客户端(Client)。...
这个"remoting的一个例子"很可能是为了帮助初学者理解和应用.NET Remoting技术。让我们深入探讨一下.NET Remoting的基础概念、工作原理以及它在实际开发中的应用。 首先,我们要理解.NET Remoting的基本概念。在...
这个简单的C# Remoting例子旨在为初学者展示如何利用这项技术来实现分布式系统间的交互。 首先,理解Remoting的基础概念至关重要。在.NET中,每个运行的程序都有一个独立的AppDomain,它是执行代码的安全边界。...
这个“remoting例子”压缩包很可能是包含了一些演示如何使用.NET Remoting技术的实例代码。 .NET Remoting允许开发者创建可跨进程或跨计算机的分布式应用程序。它提供了一种灵活的方式来暴露和访问对象,这些对象...
这个"remoting 例子"的资源包,HidaKitManagerWinfrom小框架+进销存实例,显然是一个用于教学目的的项目,旨在帮助学习者理解并应用.NET Remoting技术来构建分布式应用程序。 .NET Remoting提供了多种通信模式,...
在这个“remoting 很好的例子”中,我们可以深入理解Remoting的基本概念和实现方式。 Remoting的核心是提供跨进程、跨机器的对象交互能力。在.NET Framework中,任何实现了接口的类都可以被暴露为远程对象,通过...
Remoting是.NET Framework提供的一种强大的跨进程通信技术,它允许对象在不同的应用程序域(AppDomain)之间进行交互,甚至可以在不同的计算机上实现分布式系统。在.NET框架中,Remoting为开发者提供了一种灵活且高...
许多人反映Remoting不能穿越防火墙,不能用在公网应用中,效率很差,我相信MICROSOFT,我用了Remoting,在一个第三方的项目中,本人用Remoting在公网运行与内部运行同时进行,其实是我外网的数据传输是自己编码,效率还不错,...
然而,随着WCF(Windows Communication Foundation)的出现,.NET Remoting在新项目中的使用逐渐减少,因为WCF提供了更统一、更强大的服务导向架构。 综上所述,.NET Remoting是一个强大的工具,用于构建分布式系统...
这个简单的例子将对比在Remoting中按值和按引用传递对象的区别,这对于理解远程对象交互的本质非常重要。 首先,我们需要了解在编程中,按值传递和按引用传递的基本概念: 1. **按值传递**:当函数或方法接收到一...