2012-05-28 189 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