0

シンプルな sayHello() メソッドを使用したテスト ステートレス セッション ejb を使用して、ejb および war モジュールを使用して 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ライブラリwebservices-tools.jarを取得していて、それを取り除く方法がわからないため、junitテストを実行しようとするたびに例外が大量に発生しないことがわかりました。

以前にこの問題に直面した人はいますか? それを解決するのを手伝ってもらえますか?

ありがとう。

4

2 に答える 2

1

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/

お役に立てれば!

于 2009-10-15T18:51:59.790 に答える
0

まあ..私はこのエラーメッセージを取り除くことができました..しかし、そうする私の方法はもっと厄介なハックです..私はwebservices-tools.jarファイルをglassfishライブラリフォルダから削除し、問題を修正しました.

于 2009-10-14T14:01:12.677 に答える