Web サービス クライアントを作成しましたが、https 経由で実行できません。cert.pfx(alias=cert) を javas cacerts にインポートし、certs エイリアスのエントリを正常に追加しましたが。
それでも、wsdl url で wsimport プロンプトを使用できません。それは言う: PKIX パスの構築に失敗しました。要求されたターゲットへの有効な証明書パスが見つかりません。まあいいよ。だから私は少し研究して、それを設定しようとしました
setlocal set _JAVA_OPTIONS=%_JAVA_OPTIONS%
-Djavax.net.ssl.trustStore="C:\Program Files\Java\jdk1.7.0_79\jre\lib\security\cacerts"
-Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.keyStoreType=PKCS12 -Djavax.net.ssl.keyStorePassword=xxxxxxxxx -Djavax.net.ssl.keyStore="d:\cert.pfx" "C:\Program Files\Java\jdk1.7.0_79\bin\wsimport" -s C:\Users\me\keystore\bin\s
-keep https://service.xxxxxxxxxxx.de/xxxxxxxxxxxxTest?wsdl endlocal
成功せずに。
また、cert.pfx ファイルから証明書をエクスポートしてから、keytool -exportcert および keytool -importcert を介して証明書を cacerts にインポートしようとしました。後で、ブラウザーから証明書をエクスポートしようとしました (ブラウザーが証明書を正常に処理し、https URL にアクセスできるため)。ルート証明書を root.cer ファイルにエクスポートし、この .cer を cacerts にインポートしました (証明書とは別のエイリアスを使用する必要がありました。証明書をエイリアスとして使用すると、keytool を使用すると、コンソールに「キーが一致しません」というメッセージが表示されました)。促す)。
cacerts のダンプは、実際に cacerts にエントリがあることを示しています。JavaがURLでwsimportを拒否する理由がわかりません。
最後に、URL の宛先を自分のマシンにダウンロードし、ダウンロードした .xml ファイルで wsimport を実行し、後で生成されたスタブの URL パラメータを変更しました。ただし、アプリケーションを実行すると、「PKIX ...要求されたターゲットへの有効な証明書パスが見つかりません」というエラーが発生するため、役に立ちません。