問題タブ [module-info]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
361 参照

java - java.xml.soap と java.xml.soap の両方からパッケージ javax.xml.soap を読み取ります

Java での数年ぶりのプロジェクト。私はJava 11を使用しており、私の小さなプロジェクトはmavenでコンパイルされたモジュールです。

このエラーが発生しています: mymodule reads package javax.xml.soap from both java.xml.soap and java.xml.soap

(私が SOAP を使用しなければならない理由は歴史的なものです)

問題は、それjava.xml.soapが表示されないmvn dependency:treeことです。そのため、何を除外すればよいかわかりません。

どんなヒントでも大歓迎です

および依存関係:

0 投票する
1 に答える
572 参照

java - Tika with Java 13 でアプリケーションをコンパイルする - モジュールのロードに関する問題

Tika を使用する Java アプリケーションを OracleJDK 1.8 から OPenJDK 13 に移行しようとしています。

私のIDEはEclipseです。

module-info.javaアプリケーションに必要なモジュールを示すファイルを作成しました。

AbstractParser、などの Tika クラスを使用できるようにするためにDetector、 を追加requires org.apache.tika.core;しましたmodule-info.java

私のコードもクラスを使用して、org.apache.tika.parser.pdf.PDFParserConfig埋め込み画像を抽出します。

コンパイルエラーが発生します:

Eclipse は以下に追加requires org.apache.tika.parsers;することを提案していmodule-info.javaます: Eclipse の提案のスクリーンショット

このモジュール要件を に追加するmodule-info.javaと、アプリケーションは正しくコンパイルされます。

つまり、この段階で次のものが含まれていmodule-info.javaます。

ただし、コンパイルされたアプリケーションを実行しようとすると、次のエラーが発生します。

Eclipse でプロジェクトのライブラリを調べると、tika-core と tika-parsers (v1.24) が両方ともモジュール式であることがわかります: Eclipse Java Build Path

結論org.apache.tika.parsersとして、必須モジュールとして追加しないと、アプリケーションはコンパイルされず、追加するとorg.apache.tika.parser.onenote.OneNoteParser、モジュールにないというランタイム エラーが発生します。

これらのパッケージの JAR ファイルを調べて、パッケージの依存関係を確認しました。コアパッケージは正しいようです:

...しかし、「パーサー」jar はエラーを出します:

これは、パーサーの jar パッケージが適切に形成されていないということですか? これに対する回避策はありますか?

ありがとうございました。

編集: バージョン 1.24.1 で試してみると、実行エラーが発生します。

つまり、失敗したクラスはCompositeExternalParser代わりにOneNoreParser.

META-INF/services/org.apache.tika.parser.Parsertika-parsers-1.42.1.jar org.apache.tika.parser.external.CompositeExternalParser` を検査I can see the entryしていますが、パッケージにはこのクラスが含まれていません。

ということで、この META-INF ファイルのエラーのようです。これは、パッケージをコンパイルして Maven Central に送信する際のエラーが原因ですか?

JIRA の問題TIKA-2929を見つけました。「Apache Tika は、モジュール パスではなく、Java クラスパス上にある必要があります」と書かれています。これを試してみましたが、前に説明したように、モジュールパスに追加して設定しないと、コンパイルエラーが発生しますrequires org.apache.tika.parsers;

これは難しいパズルです...