是否安全权限不够可以设置一个policy文件(client.policy)进行安全设置:
grant
{ permission java.net.SocketPermission
"10.118.9.54:1024-65535","connect"
}
运行客户程序时,制定策略文件
java XXXClient -Djava.security.policy=client.policy或者直接将安全设定关闭:
//System.setSecurityManager(new RMISecurityManager());
以上请参见《Java 2 核心编程》,有更多rmi发布的说明
grant
{ permission java.net.SocketPermission
"10.118.9.54:1024-65535","connect"
}
运行客户程序时,制定策略文件
java XXXClient -Djava.security.policy=client.policy或者直接将安全设定关闭:
//System.setSecurityManager(new RMISecurityManager());
以上请参见《Java 2 核心编程》,有更多rmi发布的说明
,然后你只要修改("rmi://10.118.9.54/CalculatorService")地址,
在编译一边,把需要的类拷到其它的机上,你就可以运行拉!下面给代码,
import java.rmi.*;
import java.net.*;
import java.io.*;
public class MClient
{
public static void main(String args[])
{
try
{
RemoteInterface face=(RemoteInterface)Naming.lookup("RemoteServer");
System.out.println(""+face.joinString("我爱你!"));
}
catch(Exception k)
{
System.out.println("error:"+k.getMessage());
}
}
}
server
import java.rmi.*;
import java.net.*;
import java.rmi.server.*;
import java.rmi.registry.*;
public class MServer extends UnicastRemoteObject implements RemoteInterface
{
public MServer() throws RemoteException
{
super();
}
public String joinString(String str) throws RemoteException
{
String str1;
str1="李井龙"+str;
return str1;
}
}import java.net.*;
import java.rmi.*;
interface RemoteInterface extends Remote
{
public String joinString(String str) throws RemoteException;
}import java.rmi.*;
import java.net.*;
public class Server
{
public static void main(String args[])
{
try{
System.out.println("It Server is ready!!");
MServer server=new MServer();
Naming.rebind("rmi://127.0.0.1:1099/RemoteServer",server);
System.out.println("It Server is ready!!");
}
catch(Exception e)
{
System.out.println("errors:"+e.getMessage());
}
}
}
生成*_stub等你会吧,我就不讲拉