我开发了一个用于 ColdFusion 10 的 Java CFX 标记。有一个 Java 类获取一个 URL 作为参数,并且应该返回该 URL 后面的网站内容。
我们正在使用 https 协议,我需要忽略证书错误。因此,我已经实现了这里建议的解决方案:HTTPS hostname wrong: should be . 这是什么原因造成的?
我已经按照 Adobe 在这里推荐的方式测试了我的方法:调试 Java CFX 标记的方法
一切正常。
但是当我将我的 CFX 标签附加到我的 ColdFusion 实例并尝试从 ColdFusion 使用它时,我会变成这样的错误:
java.io.IOException:HTTPS 主机名错误
我的问题是,为什么?调试我的 CFX 标签没有显示错误,但在 ColdFusion 中使用它会带来该错误。对我来说,看起来 ColdFusion 在运行时覆盖了我的一些类声明。有人有什么想法吗?这种现象已知吗?有没有其他人经历过这种奇怪的行为?还是我有什么问题?
要了解我的问题,这里还有一些事实:
- 操作系统: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 标签会失败。