2011-10-29 8 views
1

私は単体テストを動作させることができません。テストを実行しているときに、ClassFormatExceptionクラスファイルにネイティブでないメソッドのコード属性がありません。javax/ejb/EJBAccessExceptionこれは私が書いたpom.xmlJava EEの実装がありません

<dependency> 
    <groupId>org.glassfish</groupId> 
    <artifactId>javaee</artifactId> 
    <version>6.0</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-api</artifactId> 
    <version>6.0</version> 
    <scope>provided</scope> 
</dependency> 

しかし、それは動作しません。ファイルrepo/org/glassfish/javaee/6.0/javaee-6.0.jarをテキストエディタで開くと、HTMLテキストのみが含まれています。あなたは何が間違っているか考えてみませんか?どこで適切なjavaee-6.0.jarを見つけることができますか?私がglassfish3/glassfish/libの1つを開いた場合、それは何かpom.xml、それ以上何も含まれていません。

私は、セッションBeanを介してアクセスされるエンティティで構成されるデータレイヤーを持っています。このレイヤーはJARとしてパッケージ化され、デプロイされます。エラーはプレゼンテーションレイヤの問題です。 EJBはありません。しかし、私はSpring MVCを使用しています。コントローラは最初にロードされます。また、いくつかのコントローラはEJBクライアントです。それは問題ではありませんが、そのうちの1つに行番号import javax.ejb.EJBAccessExceptionが含まれています。 Springローダーがこのクラスを読み込んでいるとき、上記の例外を除いて読み込みプロセスは失敗します。したがって、テストを進めるにはJava EEの実装が必要です。

しかし、この質問は実際にはより一般的です。これは初めてではなく、私はこのエラーが発生しました:依存関係JARは有効ではなく、内部を見ているときに、通常のHTMLコードが見えました。

Btw:インターネット全体のこの基本的な質問に対する適切な答えがまだ見つかっていないことに私は驚きました。

+0

詳細をお知らせください。ユニットテストは何ですか? EJB?あなたは何を使っていますか? JUnit、Arquillian? –

答えて

1

ローカルリポジトリが破損しています。jarファイルには、HTMLというコンテンツが含まれてはいけません。おそらく、あなたのプロジェクトの1つが破損したリモートリポジトリから壊れたアーティファクトをダウンロードした可能性があります。あなたの現在のプロジェクトはうまくいっているかもしれませんが、別のものは破損したミラーなどを使用している可能性があります。repo/org/glassfish/javaee/6.0/ディレクトリ全体を削除します。 Mavenは必要に応じてアーティファクトを再度ダウンロードします。削除後にmvn clean installを実行し、org/glassfish/javaee/6.0/javaee-6.0.jarのURLを確認してください。ダウンロードされた成果物(つまり、jar)にHTMLが再度含まれている場合、どちらが壊れたリポジトリであるかを示します。

とにかく、javax.ejb.EJBAccessExceptionがAPI(javaee-api.jar)にあるため、この依存関係は必要ありません。 (それはcentralにありません) 私はglassfishの依存関係を削除して、まずテストを実行してみます。それでも失敗する場合は、java -verbose:classでテストを実行し、jarにロードされたEJBAccessException.classが含まれていることを確認してください。

+0

_私は他の 'javax.javaee-api'が十分だと思います._私はそうではありません。 (私の更新された記事を参照してください - それは非常に理由です)。私の設定では、私はこれを持っています: 'http:// download.java.net/maven/glassfish'。このレポには 'javaee-3.0-SNAPSHOT.jar'というものがありますが、クラスファイルは含まれていません。これにはいくつかのMavenメタデータだけが含まれています。 –

+0

更新をご確認ください。 – palacsint

関連する問題