Проблемы тестирования ejb с netbeans и openejb

Я создал проект netbeans 6.7 EnterpriseApplication с модулями ejb и war с тестовым ejb сеанса без сохранения состояния с помощью простого метода sayHello().

Я также добавил библиотеку openEjb для модульного тестирования ejb. Все работает нормально, за исключением того, что я продолжаю получать следующую ошибку:


Testsuite: com.myapp.test.NewEmptyJUnitTest
Apache OpenEJB 3.1.1    build: 20090530-06:18
http://openejb.apache.org/
INFO - openejb.home = C:\Users\me\Documents\NetBeansProjects\TestEnterpriseApp\TestEnterpriseApp-ejb
INFO - openejb.base = C:\Users\me\Documents\NetBeansProjects\TestEnterpriseApp\TestEnterpriseApp-ejb
INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Found ClientModule in classpath: C:\Program Files\NetBeans 6.7.1\java2\ant\lib\ant.jar
INFO - Found ClientModule in classpath: C:\Program Files\NetBeans 6.7.1\java2\ant\lib\ant-launcher.jar
INFO - Found EjbModule in classpath: C:\Users\me\Documents\NetBeansProjects\TestEnterpriseApp\TestEnterpriseApp-ejb\build\jar
INFO - Found ClientModule in classpath: C:\Users\me\Documents\NetBeansProjects\TestEnterpriseApp\lib\OpenEJB\xml-resolver-1.2.jar
INFO - Found ClientModule in classpath: C:\Users\me\Documents\Downloads\glassfish\lib\webservices-tools.jar
INFO - Beginning load: C:\Program Files\NetBeans 6.7.1\java2\ant\lib\ant.jar
INFO - Beginning load: C:\Program Files\NetBeans 6.7.1\java2\ant\lib\ant-launcher.jar
INFO - Beginning load: C:\Users\me\Documents\NetBeansProjects\TestEnterpriseApp\TestEnterpriseApp-ejb\build\jar
INFO - Beginning load: C:\Users\me\Documents\NetBeansProjects\TestEnterpriseApp\lib\OpenEJB\xml-resolver-1.2.jar
INFO - Beginning load: C:\Users\me\Documents\Downloads\glassfish\lib\webservices-tools.jar
INFO - Configuring enterprise application: classpath.ear
WARN - No application-client.xml found assuming annotations present: classpath.ear, module: ant.jar
WARN - No application-client.xml found assuming annotations present: classpath.ear, module: ant-launcher.jar
WARN - No application-client.xml found assuming annotations present: classpath.ear, module: xml-resolver-1.2.jar
WARN - No application-client.xml found assuming annotations present: classpath.ear, module: webservices-tools.jar
java.lang.Exception: Could not load 1/0/com/sun/codemodel/CodeWriter.class
        at org.apache.xbean.finder.ClassFinder.readClassDef(ClassFinder.java:730)
....

Оказывается, я откуда-то получаю библиотеку webservices-tools.jar для стеклянной рыбы и не могу понять, как от нее избавиться, чтобы не получать кучу исключений всякий раз, когда я пытаюсь запустить какие-либо тесты junit.

Кто-нибудь сталкивался с этой проблемой раньше? Можете ли вы помочь мне решить это, пожалуйста?

Спасибо.


person SibzTer    schedule 08.10.2009    source источник


Ответы (2)


OpenEJB 3.1.2 устранил эту проблему и теперь может успешно игнорировать файлы классов, которые на самом деле не загружаются стандартным загрузчиком классов, т. е. 1.0.com.sun.codemodel.ClassWriter не является допустимым именем класса. Кажется, Sun помещает некоторые классы в каталог "1.0" для своих внутренних целей.

3.1.2 только вчера вырезали, страницу загрузки еще не обновили. Но официальный релиз доступен здесь:

http://www.apache.org/dist/openejb/3.1.2/< /а>

Надеюсь это поможет!

person David Blevins    schedule 15.10.2009

ну... я смог избавиться от этого сообщения об ошибке... но мой способ сделать это скорее неприятный хак... я просто удалил файл webservices-tools.jar из папки библиотеки Glassfish, и это решило проблему.

person SibzTer    schedule 14.10.2009