A服务器的程序访问B服务器的程序发布的RMI服务,报了奇怪的异常,以前没见过,需要仔细分析一下:
2013-08-22 15:02:46,942 [com.plat.rmi.time.RmiLogTimeImpl]-[ERROR] 摘要发送失败。
org.springframework.remoting.RemoteConnectFailureException: Could not connect to remote service [rmi://172.29.0.73:1100/SummaryService]; nested exception is java.rmi.ConnectException: Connection refused to host: ; nested exception is:
java.net.ConnectException: Connection refused
at org.springframework.remoting.rmi.RmiClientInterceptorUtils.convertRmiAccessException(RmiClientInterceptorUtils.java:189)
at org.springframework.remoting.rmi.RmiClientInterceptor.doInvoke(RmiClientInterceptor.java:347)
at org.springframework.remoting.rmi.RmiClientInterceptor.refreshAndRetry(RmiClientInterceptor.java:330)
at org.springframework.remoting.rmi.RmiClientInterceptor.handleRemoteConnectFailure(RmiClientInterceptor.java:306)
at org.springframework.remoting.rmi.RmiClientInterceptor.invoke(RmiClientInterceptor.java:262)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy28.push(Unknown Source)
at com.plat.rmi.time.RmiLogTimeImpl.update(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
特别注意:Linux中/etc/hosts与/etc/sysconfig/network中hostname的配置。
分享到:
相关推荐
- **异常处理**:RMI调用可能遇到网络中断、远程对象不存在等问题,因此客户端需要适当地捕获和处理`java.rmi`包下的异常,如`RemoteException`。 3. **RMI通信机制**: - **marshalling**与**unmarshalling**:...
- `java.rmi.RemoteException`是最常见的RMI异常,通常表示网络或序列化问题。 - `NotBoundException`表示试图查找的远程对象未在注册表中找到。 6. **性能优化**: - 使用持久化的RMI注册表,减少启动时的绑定...
RMI会自动处理网络传输和异常处理。 6. **反序列化和序列化**:RMI使用Java的序列化机制来处理参数和返回值的网络传输。所有远程方法的参数和返回值都必须是可序列化的。 Java RMI还有许多高级特性,例如: - **...
接口中的每个方法都可能抛出java.rmi.RemoteException,这是所有RMI异常的根异常。 2. **远程实现(Remote Implementation)**:实现了远程接口的类,其中包含了具体的业务逻辑。这些类的对象将在服务器端运行,并...
5. **处理异常**:由于网络通信的不可靠性,必须妥善处理`RemoteException`和其他可能的网络相关异常。 Java RMI的实现基于Java的序列化机制,这意味着远程方法的参数和返回值都必须是可序列化的。Java RMI还提供了...
这些方法必须抛出`java.rmi.RemoteException`异常。 #### 实现远程接口 接下来,需要实现前面定义的远程接口。实现类将包含远程对象的具体业务逻辑。 #### 编写服务器端代码 服务器端的主要职责是创建远程对象...
- `java.rmi.RemoteException`是最常见的RMI异常,通常表示网络或序列化问题。 - `NotBoundException`表示试图查找的远程对象未在注册表中找到。 - `ConnectException`和`UnknownHostException`通常表示网络问题...
- **异常处理**:RMI系统会把远程抛出的异常包装成`RemoteException`传递给客户端。 5. **RMI示例** - 一个简单的RMI应用可能包括一个远程接口、实现该接口的服务器端类、客户端调用类,以及启动服务器和客户端的...
8. **异常处理**:由于网络问题或远程对象的问题,RMI调用可能会抛出异常,包括`RemoteException`和其他子类,如`ConnectException`和`NotBoundException`。 在示例中,你可能会看到以下文件结构: - `...
7. **异常处理**:`java.rmi.RemoteException`是最常见的RMI异常,通常表示网络通信问题。其他可能的异常包括`NotBoundException`(注册表中未找到远程对象)、`ConnectException`(无法连接到服务器)等。 8. **...
- **异常处理**:RMI中的异常通常包括网络连接问题、对象不存在、版本不匹配等,需要适当地捕获和处理。 - **RMI与EJB的结合**:EJB(Enterprise JavaBeans)是Java EE的一部分,RMI常用于EJB组件之间的通信,尤其...
7. **异常处理**:`java.rmi.RemoteException`是RMI中常见的异常,它捕获了所有与远程调用相关的错误,包括网络中断、超时等。 8. **安全性**:虽然RMI提供了基本的安全特性,如SSL加密,但默认情况下并不启用。在...
这个简单的例子展示了Spring RMI的基本用法,但实际应用中可能需要考虑更多因素,如安全性、事务管理、异常处理等。通过Spring RMI,我们可以轻松地构建可扩展的分布式系统,利用其强大的特性来提升系统的灵活性和...
7. **异常处理**:RMI调用可能会遇到各种网络和运行时异常,例如`java.rmi.RemoteException`,因此在调用远程方法时应进行适当的异常处理。 通过“rmi.rar”中的源代码,你可以学习如何定义和实现远程接口,创建和...
- **自动异常处理**:Spring RMI会自动处理RMI相关的异常,如网络故障、远程对象不存在等。 - **事务支持**:Spring可以为RMI调用提供事务管理,确保操作的原子性和一致性。 ### 4. Spring AOP与RMI结合 Spring的...
这些方法必须声明为`remote`,并且可能会抛出`java.rmi.RemoteException`或其他网络相关的异常。 2. **远程实现(Remote Implementation)**:实现了远程接口的Java类,实际提供了远程方法的实现。这个类通常通过...
5. **异常处理**:RMI调用可能会抛出异常,如 `java.rmi.RemoteException` 和 `java.rmi.NoSuchObjectException`。开发者需要妥善处理这些异常,确保程序的健壮性。 6. **安全性**:RMI提供了安全机制,如SSL/TLS...
7. **异常处理(Exception Handling)**:由于网络的不可靠性,RMI调用可能会抛出各种异常,包括`RemoteException`和`ConnectException`等。良好的异常处理策略是确保程序健壮性的关键。 8. **安全性(Security)**...
1. `java.rmi`: 核心API,包含了RMI的基本接口和异常。 2. `java.rmi.activation`: 提供可激活对象的API,允许对象在需要时被激活。 3. `java.rmi.dgc`: 分布式垃圾收集器(DGC)的API,用于管理远程对象的生命周期。 ...
5. **异常处理**:由于网络通信的不可靠性,RMI调用可能会抛出各种异常,如`RemoteException`,`NotBoundException`等,因此在客户端和服务器端都需要适当的异常处理机制。 在提供的学习资料中,"rmi入门教程,简单...