webservice之rmi
发布时间:2020-12-16 23:53:46 所属栏目:安全 来源:网络整理
导读:rmi也可以实现webservice的功能。 定义一个接口,必须继承remote import java.rmi.Remote;import java.rmi.RemoteException;public interface IRmi extends Remote {public String test() throws RemoteException;public String testName(String name) throw
rmi也可以实现webservice的功能。 定义一个接口,必须继承remote import java.rmi.Remote; import java.rmi.RemoteException; public interface IRmi extends Remote { public String test() throws RemoteException; public String testName(String name) throws RemoteException; } 实现这个接口:继承unicastremoteonject. import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; public class RmiImpl extends UnicastRemoteObject implements IRmi { /** */ private static final long serialVersionUID = 1L; protected RmiImpl() throws RemoteException { super(); } @Override public String test() throws RemoteException { return "rmi"; } @Override public String testName(String name) throws RemoteException { return name; } }
Used for exporting a remote object with JRMP and obtaining a stub that communicates to the remote object. For the constructors and static
启动一个rmi服务器: import java.net.MalformedURLException; import java.rmi.AlreadyBoundException; import java.rmi.Naming; import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; public class RmiServer { public static void main(String[] args) { IRmi ir = null; try { ir = new RmiImpl(); } catch (RemoteException e) { e.printStackTrace(); } try { LocateRegistry.createRegistry(8888); Naming.bind("rmi://localhost:8888/IRmi123",ir); } catch (RemoteException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (AlreadyBoundException e) { e.printStackTrace(); } } } LocateRegistry.createRegistry(8888);//注册服务,绑定端口 下面写一个rmi客户端: import java.net.MalformedURLException; import java.rmi.Naming; import java.rmi.NotBoundException; import java.rmi.RemoteException; public class RmiClient { public static void main(String[] args) { try { IRmi ir = (IRmi) Naming.lookup("rmi://localhost:8888/IRmi123"); System.out.println(ir.test()); System.out.println(ir.testName("rmi啊")); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NotBoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } lookup是根据url服务区找对应的接口。记住,你绑定的是什么就找什么。 rmi实现webservice比较麻烦,因为它依赖的接口太多,很死,且只能在java中用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |