문제

나는 간단한 sayhello () 메소드가 포함 된 Test Instanseless 세션 EJB와 함께 EJB 및 War Modules와 함께 NetBeans 6.7 EnterpriseApplication 프로젝트를 만들었습니다.

또한 EJB를 테스트하기 위해 OpeneJB 라이브러리를 추가했습니다. 다음 오류를 계속받는 것을 제외하고는 모든 것이 잘 실행됩니다.


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)
....

어딘가에서 Glassfish Library Webservices-Tools.jar를 얻는다는 것이 밝혀졌으며 Junit 테스트를 실행하려고 할 때마다 많은 예외를 얻지 못하도록 제거하는 방법을 알 수 없습니다.

이 문제에 직면 한 사람이 있습니까? 제발 해결하도록 도와 줄 수 있습니까?

감사.

도움이 되었습니까?

해결책 2

글쎄 ..이 오류 메시지를 제거 할 수 있었지만 그렇게하는 방법은 더 불쾌한 해킹입니다. 방금 Glassfish 라이브러리 폴더에서 Webservices-Tools.jar 파일을 제거하여 문제를 해결했습니다.

다른 팁

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/

도움이 되었기를 바랍니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top