2012-05-28 57 views
0

我有一个Java Jersey项目,我正在运行一个应用程序。另一方面,我有一个项目是有一个RMI应用程序,我怎么能把这两个一起工作。换句话说,我如何将RMI/IIOP集成到Jersey应用程序中。与RMI集成泽西岛

我在想是这样的:

@Path("/items") 
public class ItemsResource { 
    @Context 
    UriInfo uriInfo; 
    @Context 
    Request request; 
     Stuber s = new Stuber(); 


    @GET 
    public Response get() throws RemoteException { 
     } 

是我在新泽西州项目的外部类,将工作作为客户端与RMI/IIOP

public class Stuber { 
    Context ic; 
    iRemoteLogic logic; 

    public Stuber() { 
     super(); 

     Object objref; 


      try { 
       ic = new InitialContext(); 

       objref = ic.lookup("LogicService"); 
       System.out.println("Client: Obtained a ref. to Hello server."); 

       logic = (iRemoteLogic) PortableRemoteObject.narrow(
         objref, iRemoteLogic.class); 

连接什么我应该添加到Stuber类以便能够作为RMI/IIOP客户端工作吗?

谢谢:)

注:我跟着this tutorial为RMI/IIOP

+0

你想从泽西岛调用你的Stuber类吗? – UVM

回答

1

您需要的地方提供的iRemoteService的实现,是通过RMI/IIOP(即PortableRemoteObject)出口,并将其注册通过JNDI作为LogicService。我怀疑后者会起作用:当然你需要提供一个协议和主机到JNDI。

+0

我有另一个独立的应用程序,完美地完成(PortableRemoteObject)并获得实现。当我将代码复制到Jersey项目时,它停止工作。泽西岛是否限制了用户这样做?在服务器之外访问资源? – rogeliog

+0

@rogeliog定义'停止工作'。 – EJP

+0

我希望'Stuber'类能够作为RMI客户端工作,当我在Jersey Tomcat应用程序之外运行Stuber文件时,它可以作为客户端使用。当我尝试将它集成到Jersey Tomcat应用程序时,问题就开始了,它通常会得到'ClassNotFoundException' – rogeliog