报错信息:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:574)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
at java.rmi.Naming.bind(Naming.java:111)
at cc.dfsoft.bank.Boot.<init>(Boot.java:77)
at cc.dfsoft.bank.Boot.main(Boot.java:187)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:364)
at java.net.Socket.connect(Socket.java:507)
at java.net.Socket.connect(Socket.java:457)
at java.net.Socket.<init>(Socket.java:365)
at java.net.Socket.<init>(Socket.java:178)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:569)
... 7 more
生成Stub服务器代理类:
RMIC cc.dfsoft.bank.rmi.ServerRMIImpl
说明:
public interface ServerRMI extends Remote
public class ServerRMIImpl extends UnicastRemoteObject implements ServerRMI
分享到:
相关推荐
2. **生成存根和骨架类**:使用`rmic`命令生成`AddServerImpl_Stub.class`等文件。 3. **启动RMI注册表**:使用`rmiregistry`命令启动监听特定端口的RMI注册表。 4. **运行服务端程序**:通过命令行运行`RmiServer`...
5. **注册表(Registry)**:RMI注册表是服务定位器,它提供了一个简单的命名服务,用于查找和绑定远程对象。默认端口是1099。 ### RMI工作流程 1. **服务器端**: - 创建远程对象并实现远程接口。 - 将远程对象...
5. **JRE中的RMI工具**:Java运行环境提供了一些命令行工具来支持RMI开发,如`rmiregistry`启动RMI注册表,`rmic`编译远程接口的stub和skeleton,`rmid`管理RMI的daemon等。 6. **安全性**:RMI虽然提供了便利,但...
import java.rmi.registry.Registry; public class Server { public static void main(String[] args) { try { Registry registry = LocateRegistry.createRegistry(1099); MyRemoteInterface impl = new ...
可以通过`java.rmi.registry.Registry`接口的`lookup`方法找到远程对象。 5. **RMI命名服务**: - 客户端通过RMI注册表找到远程服务,将远程对象注册到Registry中,例如`registry.bind("LoadFile", ...
- **注册表**: RMI注册表(`java.rmi.registry.Registry`)是一个全局命名服务,用于存储远程对象的引用。应用可以通过注册表查找并获取远程对象。 ### 2. RMI工作流程 1. **导出远程对象**: 开发者首先创建一个实现...
- **Naming Service**:RMI默认使用`java.rmi.registry.Registry`作为命名服务,它类似于电话簿,用于查找远程对象。 - **RMI Registry**:运行在特定端口(默认1099)的服务,用于注册和查找远程对象。 - **ORB...
1. 客户端创建一个远程接口的引用,通过` LocateRegistry.getRegistry()` 获取RMI注册表,并使用`Registry.lookup()` 方法查找远程对象。 2. 服务器端通过`UnicastRemoteObject.exportObject()` 方法导出远程对象,...
- 编译远程接口和实现:使用`rmic`命令生成Stub和Skeleton类。 - 注册远程对象:在服务器端通过`java.rmi.Naming`类的`bind`方法将远程对象注册到Registry。 - 启动Registry:通常通过`rmiregistry`命令启动。 - ...
而“工具”可能指的是使用Java的RMI工具类,如`rmic`用于生成Stub和Skeleton,或者`rmiregistry`来启动RMI注册服务。 【压缩包子文件的文件名称列表】中的"Weblogic RMI快速上手.pdf"可能是一份关于在WebLogic...
传统的RMI流程通常涉及到`rmic`命令,用于生成客户端所需的存根(Stub)和 skeletons(框架),但在这个例子中,我们将利用Java 1.2之后引入的动态代理机制,这使得在运行时可以自动生成这些组件。 1. **定义远程...
3. **RMI注册表(RMI Registry)**:类似于服务目录,客户端通过它查找并获取远程对象的引用。默认运行在1099端口,可以使用` LocateRegistry.createRegistry(port)` 创建自定义端口的注册表。 4. ** stubs 和 ...
在实际项目中,我们通常会使用`rmic`命令生成远程接口的存根(Stub)和 skeletons(Skeleton),它们是客户端和服务器之间的通信桥梁。然后,通过`rmiregistry`启动RMI注册表,将远程对象注册进去。客户端则通过`...
- **生成stub**:使用`rmic`工具,根据远程接口生成客户端可以使用的stub类。 - **调用远程方法**:客户端通过获取`Registry`,查找远程对象,然后通过stub调用远程方法。 3. **配置与运行**: - **IP和端口**:...
6. **RMIC编译器**:Java提供了一个名为rmic的工具,用于生成Stub和Skeleton类。不过,对于Java 1.2及更高版本,这些类会自动生成,因此通常不需要手动使用rmic。 一个简单的RMI示例步骤如下: 1. 定义远程接口,...
4. **RMI注册表**:RMI命名服务,通常使用`java.rmi.registry.Registry`,它使得客户端能够通过名称查找并访问远程服务。 5. **服务器**:运行远程对象的服务,负责启动远程对象并注册到RMI注册表。 6. **客户端**...