Remoting实际上是一种企业分布式计算的组件。在同一服务器(Java虚拟机)内进行调用的服务(或类)并不需要把自己暴露为一种远程服务; 但是,如果你需要与一个外部程序(在不同的服务器上或在一个不同的组织中)进行通讯的话,那么,必须把它实现为一个远程服务。Spring框架为把业务类 暴露为远程服务提供了一种独特而灵活的方式。
Spring Remoting架构的核心是服务对象,这些对象其实是一些POJO,也称作Spring bean。Spring框架能够把这些服务对象与基础结构细节(例如它们暴露为远程服务的方式)隔离开来;这样以来,开发者就可以专注于实现服务对象的业 务接口而不是牵涉到这些细节中去。
这个Remoting模型提供了对业务服务的远程抽象。它负责编排和反编排方法参数并且还负责处理服务方法中抛出的任何异常—使用未检查的RemoteAccessException异常对它们进行包装。为了实现各种服务,Spring使用了若干设计模式。例如,它使用代理设计模式把你对HTTP POST请求的调用翻译成指向输出服务的URL。
spring 作为一个基础框架,最remoting(远程调用)有多种支持。 对传统RMI方式的支持 ,RMI是java 平台上最传统的 远程调用方法,这种方法基于Java Remote Method Protocol ,而这个协议的底层是TCP。实现传统RMI的核心类为RmiProxyFactoryBean 和 RmiServiceExporter,传统RMI使用Java平台默认的序列化方法序处理
Remoting实际上是一种企业分布式计算的组件。在同一服务器(Java虚拟机)内进行调用的服务(或类)并不需要把自己暴露为一种远程服务; 但是,如果你需要与一个外部程序(在不同的服务器上或在一个不同的组织中)进行通讯的话,那么,必须把它实现为一个远程服务。Spring框架为把业务类 暴露为远程服务提供了一种独特而灵活的方式。 Spring Remoting架构的核心是服务对象,这些对象其实是一些
Spring目前提供了对RMI、HttpInvoker、Hessian、Burlap及WebService等Remoting技术的集成。Spring屏蔽了这些实现技术的差异,用户只需开发简单的Java对象(Plain Old Java Objects,POJO)然后按照Spring规定的格式进行配置文件的编写即可。 6.2.1 Hessian使用演示 【例6.1】在Spring中使用Hessia
1. 总体介绍 Spring目前提供了对HttpInvoker、Hessian、Burlap等Remoting技术的集成。 Spring屏蔽了这些实现技术的差异,用户只需开发简单的Java对象(Plain Old Java Objects,POJO)然后按照Spring规定的格式进行配置文件的编写即可,提高效率,而且几种调用方式之间可以平滑切换,只需要更改配置文件,不需要更改具体的代码。 对比介绍
Spring Remoting (-) 1. 使用Http 调用:首先在配置文件中定义所要暴露的接口,如下代码: 接收: <bean name="contactExporter" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <property name="service"
这两天在研究一个其他组的人提供的服务,服务器端使用spring的remote进行rmi接口暴露的,客户端调用rmi接口。发现一直报下面的错误。 Exception in thread "main" java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java
问题内容: 我正在使用JBoss运行客户端/服务器应用程序。 如何连接到服务器JVM的MBeanServer?我想使用MemoryMX MBean来跟踪内存消耗。 我可以使用JNDI查找连接到JBoss MBeanServer,但是java.lang.MemoryMX MBean没有在JBoss MBeanServer中注册。 编辑:要求是从客户端以编程方式访问内存使用情况。 问题答案: 与JBo
我正在开发一个SMS应用程序,并在其中使用JMS。下面是一个简单的图表,显示了我将如何实现该应用程序: 所以基本上,最终用户通过主服务器发送SMS消息。主服务器将消息重定向到JMS服务器。JMS服务器接收消息并将其放入队列以立即或稍后处理。 我有几个关于设计的问题,关于实现JMS的正确方法是什么: 将ConnectionFactory放置在JMS服务器上是正确的,还是应该将其移动到主服务器上?或者
我有很多不正常的逮捕,但我不明白这怎么可能,因为不明白问题的根源。这是异常逮捕的日志: android.app.远程服务例外: android.app.ActivityThread$H. handleMessage(ActivityThread.java:1881)android.os.Handler.dispatchMessage(Handler.java:105) android.os.Loo
配置JMeter远程服务器时,是否有办法在远程服务上启用身份验证,例如基本身份验证? 基本上,我想用身份验证来保护我的JMeter远程服务器。谢谢
Netty服务器,Fedora。我只是无法从远程主机连接到服务器,并且通过util没有显示监听套接字。但是我可以在同一台机器上建立运行客户端和服务器的连接。就像这样: 我已尝试仅使用端口、localhost IP、0.0.0.0 IP和网络IP初始化
UNIX系统有一个记录标准服务的数据库,这个数据库由头文件/etc/services或域名服务器提供。 关键头文件 netdb.h 关键结构体 struct servent /* server entry的缩写 */ { char *s_name; /* 服务程序的正式名字 */ char *s_alises;/* 服务程序的别名,为一字符串数组,空指针标志该数组结束 *
答案可能涵盖所有框架,但我对SpringMVC案例特别感兴趣。我正在重构一个访问内部数据库和远程服务的服务层。这些方法应该是事务性的,它们需要来自远程服务的数据。下面是类似的伪代码: 这样更容易实现。但是有许多缺点,例如当远程服务调用失败时不必要地创建和回滚事务,由于远程服务调用而导致的事务更长,并且可能更复杂。我正在考虑将服务调用移动到单独的非事务性方法,并调用事务性方法,如下面的代码段所示 假