2010-07-20 54 views
0

我有一些執行rmi的jar文件。除了一個以外,這些工作都正在進行,有問題的人試圖在不同的項目中查找遠程slsb。從jar文件中失敗的slsb的遠程查找,雖然從相同的地方調用的jar文件非常類似的查找工作

因此,代碼是相同的位置:

machineNameOrAddress = args[0]; 
jndiPortNumber = args[1]; 
action = args[2]; 
    Properties properties = new Properties(); 
    properties.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); 
    properties.setProperty("java.naming.provider.url", "jnp://" + machineNameOrAddress + ":" + jndiPortNumber); 
    properties.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming"); 
    try { 

    initialContext = new InitialContext(properties); 

但隨後產生差異;這是確定:

IEmailNotificationSLSBRemote notificationSLSBRemote = (IEmailNotificationSLSBRemote) initialContext.lookup("ProjectOne/EmailNotificationSLSB/remote"); 

這是不正常:

IEmailNotificationSLSBRemote notificationSLSBRemote = (IEmailNotificationSLSBRemote) initialContext.lookup("ProjectTwo/EmailNotificationSLSB/remote"); 

Everythign編譯everythign其他工程確定,我覺得已經設置everythign了OK(好幾乎一切)。

這是錯誤,它是相同的客戶端目錄。 rmi's正在同一地點被調用。

javax.naming.CommunicationException [Root exception is java.lang.ClassNotFoundException: my.path.ProjTwo.client.interfaces.IEmailNotificationSLSBRemote (no security manager: RMI class loader disabled)] 
     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:786) 
     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) 
     at javax.naming.InitialContext.lookup(Unknown Source) 
     at uk.co.tpplc.hands.client.utils.EmailNotificationUtil.main(EmailNotificationUtil.java:47) 
Caused by: java.lang.ClassNotFoundException: uk.co.tpplc.hands.client.interfaces.IEmailNotificationSLSBRemote (no security manager: RMI class loader disabled) 
     at sun.rmi.server.LoaderHandler.loadProxyClass(Unknown Source) 
     at java.rmi.server.RMIClassLoader$2.loadProxyClass(Unknown Source) 
     at java.rmi.server.RMIClassLoader.loadProxyClass(Unknown Source) 
     at sun.rmi.server.MarshalInputStream.resolveProxyClass(Unknown Source) 
     at java.io.ObjectInputStream.readProxyDesc(Unknown Source) 
     at java.io.ObjectInputStream.readClassDesc(Unknown Source) 
     at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) 
     at java.io.ObjectInputStream.readObject0(Unknown Source) 
     at java.io.ObjectInputStream.readObject(Unknown Source) 
     at java.rmi.MarshalledObject.get(Unknown Source) 
     at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72) 
     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:710) 
     ... 3 more 

任何幫助極大的讚賞。這兩個項目都有slsbs,他們做的事情幾乎是一樣的。 jar文件很好地編譯並位於相同的位置。 而無論是在JMX控制檯jboss.j2ee出席並正確:需要

ear=ProjectOne.ear,jar=ProjectOne-ejb.jar,name=EmailNotificationSLSB,service=EJB3 

ear=ProjectTwo.ear,jar=ProjectTwo-ejb.jar,name=EmailNotificationSLSB,service=EJB3 

回答

0

ProjectTwo jar文件被複制到包括主叫罐子的目錄。