rmi问题.希望大吓们都来看看.偶是初学者请指教.谢了.
这是一个使用了RMI技术的简单的客户/服务器应用程序。
有四个源文件:
AddServerIntf.java
AddServerImpl.java
AddServer.java
AddClient.java
生成存根和主框架
rmic AddServerImpl
会生成两个新的文件:
AddServerImpl_Skel.class(主框架)
AddServerImpl_Stub.class(存根)
安装文件到客户端和服务器
复制AddClient.class ,AddServerImpl_Stub.class 和 AddServerIntf.class 到客户机上的一个目录中。
复制AddServerImpl_Stub.class ,AddServer.class ,AddServerIntf.class ,AddServerImpl.class, AddServerImpl_Skel.class 到服务器的一个目录中。
在服务器端启动rmi注册程序
start rmiregistry
这个窗口要一直开着。
启动服务器
java AddServer 在作这一步的时候就出现异常了。那个异常是出现在DOS窗口中的COPY不下来。
启动客户端
java AddClient server1 8 9
java AddClient 192.168.1.77 8 9
java AddClient 127.0.0.1 8 9
其中的一种即可。
这个程序是一个很简单的小程序,客户端和程序调用服务器的add方法来算出两个数的和。
我是这样执行的。我分别建了两个新的文件夹。Client ,Server 把相应的文件copy到不同的文件夹中。
然后按上面所述的步骤执行。在启动服务器的时候就出错了。特发帖问大虾们。
以下是源码:
import java.net.*;
import java.rmi.*;
public class AddServer {
public static void main(String args[]) {
try {
AddServerImpl addServerImpl = new AddServerImpl();
Naming.rebind("AddServer",addServerImpl);
}
catch (Exception e){
System.out.println("Exception : " + e);
}
}
}
import java.rmi.*;
public interface AddServerIntf extends Remote {
double add(double d1,double d2) throws RemoteException ;
}
import java.rmi.*;
import java.rmi.server.*;
public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf {
public AddServerImpl() throws RemoteException {
}
public double add(double d1,double d2 ) throws RemoteException {
return d1 + d2 ;
}
}
import java.rmi.*;
public class AddClient {
public static void main(String args[]) {
try {
String addServerURL = "rmi://"+args[0] + "/AddServer";
AddServerIntf addServerIntf =
(AddServerIntf) Naming.lookup(addServerURL);
System.out.println("The first number is : " + args[1]);
double d1 = Double.valueOf(args[1]).doubleValue();
System.out.println("The second number is : " + args[2]);
double d2 = Double.valueOf(args[2]).doubleValue();
System.out.println("The sum is : " + addServerIntf.add(d1,d2));
}
catch(Exception e){
System.out.println("Exception : " + e);
}
}
}
问题点数:100、回复次数:3Top
1 楼jinzhili(跑)回复于 2004-09-03 08:59:13 得分 0
import java.rmi.*;
import java.rmi.server.*;
public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf {
public AddServerImpl() throws RemoteException {
}
public double add(double d1,double d2 ) throws RemoteException {
return d1 + d2 ;
}
}Top
2 楼feiyuwen(飞宇)回复于 2004-09-03 09:25:27 得分 50
什么样的错误地说出来啊
Top
3 楼Shires(Trombone)回复于 2004-09-03 09:31:06 得分 50
upTop




