Как я могу использовать Java Reflection API в объекте EJB 3? - PullRequest
0 голосов
/ 29 января 2010

Я делаю следующие шаги с eclipse 3.5, JBoss 4.2, EJB3, но я сталкиваюсь с классом не найденным исключением

1.компилирование этого кода в файл foo.jar

package mypackage.foo;
import myejbpackage.ejb.fooInterface; 
class foo implements fooInterface{
 @override
 void helloWorld(){System.out.print("HelloWorld");}
     }

Обратите внимание, что интерфейс fooInterface in написан внутри используемого EJB

2. Используя рефлексию, я беру экземпляр из этого класса, также с тем же ejb

package myejbpackage.ejb;
class fooCaller{
    void call(){
     Class foo=  Class.forName("mypackage.foo.foo");

fooInterface iDataBackupWriter = (fooInterface) foo.newInstance (); fooInterface.helloWorld (); } }

3. затем вызывая его внутри лица без состояния ejb3

package myejbpackage.ejb;
test(){        
  System.Out.Write("before calling");
   new fooCaller().call();
    }

4. затем развертывание в Jboss 4.2 и размещение файла foo.jar по умолчанию / lib

5. затем вызов метода ejb 3 с использованием простого клиента

это печать:

 "before calling"

и в консоли затмения возникает следующее исключение

  javax.ejb.EJBException: java.lang.RuntimeException: java.lang.NoClassDefFoundError:                       myejbpackage/ejb/fooInterface; nested exception is: java.lang.RuntimeException: java.lang.NoClassDefFoundError: myejbpackage/ejb/fooInterface
 java.lang.RuntimeException: java.lang.NoClassDefFoundError:myejbpackage/ejb/fooInterface

Есть предложения? 1. Это исключение из JBOOS, почему? 1.Куда мне положить joo foo.jar, чтобы увидеть его с ejb3 jar?

заранее спасибо

1 Ответ

0 голосов
/ 29 января 2010

была круговая зависимость, которая порождает эту проблему

...