请教:rmi的一个问题 老兄,弟二次使用这个命令的时候就会出现这个问题。检察你的系统进程中是否已经有了一个rmiregistry??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 端口已经被占用异常--第一次使用的RMI端口没有释放。楼主应该考虑用程序来注册RMI的端口号 java.rmi.registry.LocateRegistry.createRegistry(35687); 问题是我用的程序是1882端口,下面是测试程序:import java.rmi.Naming;public class rmiserver1bind{ public rmiserver1bind() { try { rmiserver1 s=new rmiserver1pro(); Naming.rebind("rmi://10.204.6.35:1882/rmiservice1",s); } catch(Exception e) { System.out.println("Excetion :"+e); } } public static void main (String args[]) { new rmiserver1bind(); } }import java.io.IOException;import java.rmi.*;import java.util.*;import javax.rmi.*;public class rmiclient1{ public rmiclient1() { } public static void main(String[] args)throws Exception { try { rmiserver1 rs1=(rmiserver1)Naming.lookup("rmi://10.204.6.35:1882/rmiservice1"); testobject1 obj1=new testobject1("new1","new2"); Object obj2=rs1.remotemethod1(obj1); testobject2 obj3=(testobject2)obj2; System.out.println(obj1.getvalue()); System.out.println(obj3.obj2getvalue()); } catch(Exception e) { System.out.println("Exception:"+e); } }}import java.rmi.*;import java.rmi.server.*;public class rmiserver1pro extends UnicastRemoteObject implements rmiserver1{ public rmiserver1pro() throws RemoteException { super(); } public Object remotemethod1(Object obj) //没有throw exception { testobject1 obj1=(testobject1)obj; testobject2 obj2=new testobject2(obj1.getstr1(),obj1.getstr2(),3); return obj2; }}import java.rmi.*;public interface rmiserver1 extends Remote{ Object remotemethod1(Object obj)throws RemoteException; }import java.io.*;public class testobject1 implements Serializable{ String s1=""; String s2=""; public testobject1(String str1,String str2) { s1=str1; s2=str2; } public void putvalue(String str1,String str2) { s1=str1; s2=str2; } public String getvalue() { return s1+s2; } public String getstr1() { return s1; } public String getstr2() { return s2; }}import java.io.*;public class testobject2 implements Serializable{ String s1=""; String s2=""; int i=0; public testobject2(String str1,String str2,int c) { s1=str1; s2=str2; i=c; } public void obj2putvalue(String str1,String str2,int c) { s1=str1; s2=str2; i=c; } public String obj2getvalue() { return s1+s2+String.valueOf(i); } public String obj2getstr1() { return s1; } public String obj2getstr2() { return s2; }}还请各位高手指点 1. 不知道你是怎么运行rmiregistry命令的。1099端口是RMI默认端口,也就是说只运行rmiregistry不加端口号(rmiregistry 1882),那rmiregistry打开的1099端口而不是1882;同时,一台机器上同一端口号只能注册一次。2.不支持你使用rmiregistry注册,而是程序注册java.rmi.registry.LocateRegistry.createRegistry(1882); 新手提问!跪求跪求!!!! Hibernate sequence 问题 请推崇基本Struts 和 JSF 的好书,谢谢 一道面试题 word转换为pdf的问题 xml存储树型结构方案,请高手指教! 送分来了啊。快来啊。 SOS:Struts数据库国际化问题 jsp数据库查询点击快了就不响应了,是tomcat的问题还是程序的问题? 请keen_9(新新)近来拿分 struts的ActionForm里有List,list对应一个Bean。list的个数是变化的时候出现javax.servlet.ServletException: BeanUtils.populate错误 tomcat的简单问题
楼主应该考虑用程序来注册RMI的端口号
java.rmi.registry.LocateRegistry.createRegistry(35687);
import java.rmi.Naming;
public class rmiserver1bind
{
public rmiserver1bind()
{
try
{
rmiserver1 s=new rmiserver1pro();
Naming.rebind("rmi://10.204.6.35:1882/rmiservice1",s);
}
catch(Exception e)
{
System.out.println("Excetion :"+e);
}
}
public static void main (String args[])
{
new rmiserver1bind();
}
}
import java.io.IOException;
import java.rmi.*;
import java.util.*;
import javax.rmi.*;public class rmiclient1
{
public rmiclient1()
{
}
public static void main(String[] args)throws Exception
{
try
{
rmiserver1 rs1=(rmiserver1)Naming.lookup("rmi://10.204.6.35:1882/rmiservice1");
testobject1 obj1=new testobject1("new1","new2");
Object obj2=rs1.remotemethod1(obj1);
testobject2 obj3=(testobject2)obj2;
System.out.println(obj1.getvalue());
System.out.println(obj3.obj2getvalue());
}
catch(Exception e)
{
System.out.println("Exception:"+e);
}
}
}
import java.rmi.*;
import java.rmi.server.*;public class rmiserver1pro extends UnicastRemoteObject implements rmiserver1
{
public rmiserver1pro() throws RemoteException
{
super();
}
public Object remotemethod1(Object obj) //没有throw exception
{
testobject1 obj1=(testobject1)obj;
testobject2 obj2=new testobject2(obj1.getstr1(),obj1.getstr2(),3);
return obj2;
}
}
import java.rmi.*;
public interface rmiserver1 extends Remote
{
Object remotemethod1(Object obj)throws RemoteException;
}
import java.io.*;
public class testobject1 implements Serializable
{
String s1="";
String s2="";
public testobject1(String str1,String str2)
{
s1=str1;
s2=str2;
}
public void putvalue(String str1,String str2)
{
s1=str1;
s2=str2;
}
public String getvalue()
{
return s1+s2;
}
public String getstr1()
{
return s1;
}
public String getstr2()
{
return s2;
}}
import java.io.*;
public class testobject2 implements Serializable
{
String s1="";
String s2="";
int i=0;
public testobject2(String str1,String str2,int c)
{
s1=str1;
s2=str2;
i=c;
}
public void obj2putvalue(String str1,String str2,int c)
{
s1=str1;
s2=str2;
i=c;
}
public String obj2getvalue()
{
return s1+s2+String.valueOf(i);
}
public String obj2getstr1()
{
return s1;
}
public String obj2getstr2()
{
return s2;
}
}
还请各位高手指点