Удаленный поиск slsb завершился неудачно из файла JAR, хотя очень похожий поиск из файла JAR, вызываемого из одного места - PullRequest
0 голосов
/ 20 июля 2010

У меня есть несколько файлов JAR, которые выполняют RMI.Все они работают, кроме одного, проблемный пытается найти удаленный slsb в другом проекте.

Таким образом, код здесь тот же:

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 компилирует все остальные, все работает хорошо, я думаю, что все установки хорошо (почти все).

Это ошибка, это тот же каталог клиента.RMI вызывается в том же месте.

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

1 Ответ

0 голосов
/ 20 июля 2010

Файл jar ProjectTwo необходимо скопировать в каталог, содержащий вызывающие jar.

...