Java EE 6 プラットフォームでエンタープライズ アプリケーションを開発しています。IDE は NetBeans 7.2 で、アプリケーション サーバーは GlassFish 3.1.2.2 です。
ビジネス ロジックは、ライブラリ (具体的には HBase-RDF) を使用して、そのコアでいくつかのタスクを処理する必要があります。元の HBase-RDF コードは多くのパッケージに依存しており、それらの新しいバージョンはすでに Glassfish で使用されていると思います。たとえば、javax.xml、javax.activation、com.sun.jersey などのパッケージが既に jar ファイルに含まれていることがわかります。
私は過去にそれほど重要ではない Java EE アプリケーションを開発したことがありますが、これに関連するかどうかに関係なく、アプリケーションの開発で数え切れないほどの頭痛の種に直面しました。何十ものスタックオーバーフローの質問やバグ追跡システムなど、Web で読んだことから、元のライブラリ (HBase-RDF) をすべての依存関係と共にパッケージ化できれば、これらの頭痛の種のいくつかを取り除くことができると思います。 jar ファイル全体を削除し、それらがプロジェクトに直接含まれないようにします。
私の最初の質問は、問題の原因について私は正しいですか? これが私の問題の原因でしょうか? クラスパスから JAXB および Xerces jar を削除することで問題の 1 つを既に解決しており、幸いなことに、Hbase-RDF のこれらの部分を使用する必要があるため、答えはイエスだと思います。
2 番目の質問は、前の質問について私が正しい場合、どうすればこれを行うことができるかということです。これらのライブラリを 1 つのライブラリ (Hbase-RDF) だけが使用するように制限するにはどうすればよいですか?
注: ビルド プロセスが問題なく終了したと言うのは役に立つかもしれませんが、プロジェクトのデプロイと実行に関して 2 つの大きな問題に直面しています。まず、アプリケーションは、netbeans と一緒にインストールされているローカルの Glassfish インスタンスに正常にデプロイされますが、同じ .ear パッケージが別の同じバージョンのインスタンスにデプロイできず、server.log ファイルには問題の原因を見つけるのに役立つ情報が含まれていません。 . エラーはこれと非常によく似ていますが、提案された解決策は機能しません。2番目の問題はこれと非常によく似ており、提案されたすべての解決策を試してみましたが、うまくいきませんでした。Web モジュール内の Web サービスは EJB を正常に呼び出しますが、JSF facelet index.html の実行に失敗するのは興味深いことです。