問題タブ [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.
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
ことです。そのため、何を除外すればよいかわかりません。
どんなヒントでも大歓迎です
および依存関係:
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.Parser
tika-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;
。
これは難しいパズルです...