AWS SDKを追加する既存のProject Xがありますが、何らかの理由でApache Commons httpclient
の古いバージョンを使用しようとしています。Mavenがpom.xmlに指定されているより古いバージョンを取得しています
プロジェクトXは既にバージョンがなくにはhttpclient
が必要です。AWS SDK v1.11.52には、依存関係としてhttpclient
v4.5.2が指定されています。バージョンがなかったので、プロジェクトXのpom.xml
にバージョン4.5.2を設定しました。これは正常にコンパイルが、私はTomcatでホストされているJSPページ内のコードを使用しようとすると、私はこのエラーを取得:
lib
ディレクトリを見ると
HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>(Ljavax/net/ssl/SSLContext;Ljavax/net/ssl/HostnameVerifier;)V
、私はhttpclient
V4.3用のjarがある見ます。エラーのコンストラクタがv4.3では存在しないが、v4.5.2では存在することを確認した。
私は私のクラスパスのファイルを消去し、mvn clean
を使用して確認しました、とも~/.m2
を削除しようとしたが、私は、プロジェクトを再構築すると、httpclient
のV4.3は、まだに引っ張られる。私はIDE、単にMavenを使用していません。私はどこにv4.3についての言及もないことを確認するためにプロジェクトをチェックしたので、なぜこれが起こっているのか分からない。
私はmvn depdency:tree -Dverbose
と私の依存情報をチェックしました。ここでは、関連する部分、httpclient
はどこにも言及されていないされています
[INFO] +- org.apache.httpcomponents:httpclient:jar:4.5.2:compile
[INFO] | +- org.apache.httpcomponents:httpcore:jar:4.3:compile (version managed from 4.4.4)
[INFO] | +- commons-logging:commons-logging:jar:1.1.3:compile (version managed from 1.2)
[INFO] | \- commons-codec:commons-codec:jar:1.9:compile
...
[INFO] | +- com.amazonaws:aws-java-sdk-core:jar:1.11.52:compile
[INFO] | | +- (commons-logging:commons-logging:jar:1.1.3:compile - version managed from 1.2; omitted for duplicate)
[INFO] | | +- (org.apache.httpcomponents:httpclient:jar:4.3:compile - version managed from 4.5.2; omitted for conflict with 4.5.2)
なぜpom.xml
ファイルはに引っ張られているのいずれかに記載されていないバージョンがありますか? version managed
をもっと詳しく説明することができますか?最も重要なのは、は私の依存関係のバージョン番号を強制する方法があるのですか?
更新:問題は、古いバージョンが親ポンポンに含まれていたということでした。私はこれを逃して、dependency:tree
出力からそれを理解することができませんでした。親のポームを更新することで問題が解決されました。誤ったアラームのために申し訳ありません。
aws-java-sdk依存関係からhttpclientを除外する必要はありませんか? –
私はそのオプションを知らなかった。私はちょうどそれを試み、残念ながらそれは動作しませんでした。 – polm23
あなたはあなたのポンを共有するでしょう、これはテストで私のためにうまくいく、 –