23,404
社区成员
发帖
与我相关
我的任务
分享
package com.lzw.jndirmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface RmiSimple extends Remote{
public String sayHello() throws RemoteException;
}
package com.lzw.jndirmi;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class RmiSimpleImpl extends UnicastRemoteObject implements RmiSimple {
private static final long serialVersionUID = 1L;
protected RmiSimpleImpl() throws RemoteException {
super();
}
public String sayHello() throws RemoteException {
return "这是lzw's RMI与JNDI集成!!";
}
}
package com.lzw.jndirmi;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class RmiJndiSever {
public static void main(String[] args) {
try {
LocateRegistry.createRegistry(8080);
RmiSimple server = new RmiSimpleImpl();
Properties properties = new Properties();
//Context.INITIAL_CONTEXT_FACTORY = "java.naming.factory.initial";
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY , "com.sun.jndi.rmi.registry.RegistryContextFactory");
properties.setProperty(Context.PROVIDER_URL, "rmi://localhost:8080");
InitialContext ctx = new InitialContext(properties);
ctx.bind("java:com/lzw.jndirmi/RmiSimple", server);
ctx.close();
System.out.println("RMI与JNDI集成服务启动.等待客户端调用...");
} catch (RemoteException e) {
e.printStackTrace();
} catch (NamingException e) {
e.printStackTrace();
}
}
}
package com.lzw.test;
import java.rmi.RemoteException;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.lzw.jndirmi.RmiSimple;
/**
* RMI 与 JNDI集成
* Properties - java build path - project 引入服务端项目
* @author lKF23467
*
*/
public class JndiRmiClient {
public static void main(String[] args) {
Properties properties = new Properties();
//Context.INITIAL_CONTEXT_FACTORY = "java.naming.factory.initial";
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY , "com.sun.jndi.rmi.registry.RegistryContextFactory");
properties.setProperty(Context.PROVIDER_URL, "rmi://localhost:8080");
try {
InitialContext ctx = new InitialContext(properties);
RmiSimple remote = (RmiSimple) ctx.lookup("java:com/lzw.jndirmi/RmiSimple");
System.out.println(remote.sayHello());
} catch (NamingException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}