今天在应用程序中报了下面异常:
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: invalid method hash
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
.....
Caused by: java.rmi.UnmarshalException: invalid method hash
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
google一下,果然如以下网址所述,是由于客户端和服务器端的接口不一致导致,重新打个jar包发布到客户端,解决;
http://archives.java.sun.com/cgi-bin/wa?A2=ind0304&L=javaspaces-users&F=&S=&P=3758
分享到:
相关推荐
错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099; nested exception is: java.net.BindException: Address already in use: JVM_Bind 这里说的是1099端口被其它进程占用...
远程接口定义了可以在远程对象上执行的操作,它继承了`java.rmi.Remote`接口。这个接口不包含任何方法,但它是所有远程接口的基类,用来标记这些接口为远程可调用。远程对象是实现了远程接口的具体类,它实现了接口...
2. **实现远程接口**:然后,创建一个实现远程接口的类,该类通常需要继承自`java.rmi.Remote`接口,并且抛出`java.rmi.RemoteException`。在这个实现类中,你需要实现远程接口中的所有方法。 3. **创建并注册远程...
6. `java.rmi`和`java.rmi.CORBA`:RMI-IIOP相关API,RMI-IIOP是RMI的一种扩展,它使用CORBA协议进行通信,常用于EJB环境。 定位远程对象的过程通常涉及使用RMI命名服务,如通过JNDI(Java Naming and Directory ...
3. `java.rmi.dgc`: 分布式垃圾收集(DGC)的API,帮助管理远程对象的生命周期。 4. `java.rmi.registry`: 提供RMI的网络命名服务,类似于服务发现机制。 5. `java.rmi.server`: 服务器端操作的API,包括服务器端的回...
这些方法必须声明为`remote`,并且可能会抛出`java.rmi.RemoteException`。 2. 远程实现(Remote Implementation):实现了远程接口的具体类,它提供了远程方法的实际实现。 3. 注册表(Registry):RMI系统中的一个...
1. **接口定义**:首先,你需要定义一个远程接口(Remote Interface),它继承自Java的`java.rmi.Remote`接口,并声明所有远程方法。这些方法将抛出`java.rmi.RemoteException`。 2. **实现远程接口**:然后,创建...
3. `java.rmi.dgc`: 分布式垃圾收集器(DGC)的API,用于管理远程对象的生命周期。 4. `java.rmi.registry`: RMI网络命名服务的API,用于查找和注册远程对象。 5. `java.rmi.server`: 服务器端操作的API,包含服务器端...
- **`java.rmi.server.RemoteObject`**:这是一个抽象类,为所有远程对象提供基础实现。 - **`java.rmi.server.RemoteServer`**:这是另一个抽象类,提供了与安全相关的实现。 - **`java.rmi.activation.Activable`*...
- **`java.rmi.server.UnicastRemoteObject`**:实现了`java.rmi.server.RemoteObject`,用于创建远程对象的桩和框架。 - **`java.lang.Object`**:所有Java对象的基类。 - **`java.rmi.registry.LocateRegistry`**...
5 Server failed to start: java.rmi.RemoteException: Cannot start. localhost.localdomain is a loopback address.An error occurred: Cannot start. localhost.localdomain is a loopback address.
31. **java.rmi.activation**:RMI对象激活支持,允许对象在需要时自动创建。 32. **java.rmi.dgc**:RMI分布式的垃圾回收支持。 33. **java.rmi.registry**:RMI注册表,用于查找和管理远程对象。 34. **java....
1. **远程接口(Remote Interface)**:这是定义远程方法的接口,需要继承java.rmi.Remote接口,并声明抛出java.rmi.RemoteException的异常。 2. **远程对象(Remote Object)**:实现了远程接口的类,这个类的对象...
- **java.rmi.activation**:支持激活ID管理等远程服务功能。 - **java.rmi.dgc**:提供了与RMI相关的数据管理功能。 - **java.rmi.registry**:注册表服务支持。 - **java.rmi.server**:服务器端RMI支持。 - ...
java.rmi.registry.Registry registry = java.rmi.registry LocateRegistry.createRegistry(1099); registry.bind("MeetingService", service); } } ``` **4. 客户端调用:** ```java public class Client { ...
`java.util.concurrent.ExecutionException` 是Java并发编程中一个常见的异常,通常在执行Future对象的get()方法时抛出。这个异常表明在异步任务的执行过程中发生了异常。当我们使用ExecutorService提交任务并尝试...
java -Djava.rmi.server.hostname=localhost -Djava.rmi.registry.port=1099 YourServerClass ``` 5. 创建RMI客户端:在客户端,通过查找注册表获取远程对象的引用,并调用其方法。 ```java String url = "rmi://...
2. 远程对象:实现了远程接口的类,代表实际执行远程方法的实体,需要继承`java.rmi.Remote`并实现接口中的所有方法。 3. RMIServer:服务器端程序,负责注册远程对象到RMI注册表,使得客户端可以通过名称查找并调用...
在linux上启动jmeter-server报错: ...Server failed to start: java.rmi.RemoteException: Cannot start. localhost is a loopback address. An error occurred: Cannot start. localhost is a loopback address.
首先,我们需要定义一个远程接口 `HelloInterface`,它继承自 `java.rmi.Remote`。这个接口声明了需要被远程调用的方法,例如 `say()` 方法。远程接口的方法必须抛出 `RemoteException`,这是所有 RMI 相关异常的根...