ColdFusion 10 で使用する Java CFX タグを開発しました。パラメータとして URL を取得し、その URL の背後にある Web サイトのコンテンツを返す Java クラスがあります。
https プロトコルを使用しており、証明書エラーを無視する必要があります。そのため、ここで提案されているソリューションを実装しました: HTTPS ホスト名が間違っています: する必要があります。これは何が原因ですか?
Adobe がここで推奨する方法でメソッドをテストしました: Java CFX タグのデバッグへのアプローチ
すべて正常に動作します。
しかし、CFX タグを ColdFusion インスタンスにアタッチして ColdFusion から使用しようとすると、次のようなエラーが発生します。
java.io.IOException: HTTPS ホスト名が間違っています
私の質問は、なぜですか?CFX タグをデバッグしてもエラーは表示されませんが、ColdFusion で使用するとエラーが発生します。私にとっては、ColdFusion が実行時にクラス宣言の一部を上書きしているように見えます。誰かアイデアはありますか?この現象は知られていますか?他の誰かがその奇妙な行動を経験しましたか? それとも私は何か間違っていますか?
ここで私の問題を理解するために、いくつかの事実があります:
- OS: Suse Linux Enterprise Server
- CF: ColdFusion 10 マルチサーバー
- Java の開発環境: NetBeans 7.1.2
- CF の開発環境: ColdFusion Builder 2.1
デモンストレーション用のソースコード:
...
url = new URL("https://domainname/path/file.type");
HostnameVerifier hv = new HostnameVerifier() {
@Override
public boolean verify(String urlHostName, SSLSession ssls) {
System.out.println("Warning: URL HOST: " + urlHostName + " vs. " + ssls.getPeerHost());
return true;
}
};
HttpsURLConnection.setDefaultHostnameVerifier(hv);
URLConnection conn = url.openConnection();
...(Do something)...
問題:
- main メソッドを使用したデバッグは正常に機能します
- 同じ方法で ColdFusion で CFX タグを使用すると失敗します。