我使用在ColdFusion的GoCardless Java库,但我得到以下异常时:ClassCast例外使用GoCardless Java库使用ColdFusion
com.sun.net.ssl.internal.www.protocol.https。 HttpsURLConnectionOldImpl不能转换为javax.net.ssl.HttpsURLConnection中
看了this blog post似乎GoCardless是对的javax.net.ssl编写的,但是JVM是处理com.sun.net.ssl。
的博客文章建议通过设置下面的Java系统属性固定的:
-Djava.protocol.handler.pkgs=javax.net.ssl
我初出茅庐不断变化的JVM设置,并想知道如果更改上述设置可能在其他地方造成的问题,也许这里本地的ColdFusion方法依赖在com.sun.net.ssl上?如果可能会出现问题,那么我不能通过更改JVM设置来实际解决问题,因为我有几个应用程序在同一个ColdFusion实例上运行。
会有其他解决此问题的方法吗?谢谢!
我没有要为大家介绍的问题/不兼容的答案。不过,我想这个设置会影响任何能够进行ssl调用的标签或函数,例如'cfhttp','cfdocument'等等。 (显然它会影响所有使用该jvm的应用程序)。您可以查看文档以查看API是否提供了用于设置/更改所使用的默认安全提供程序的任何机制(续...) – Leigh
某些库提供了自定义属性文件,如标准['security.properties']( http://download.java.net/jdk6/beta2/docs/technotes/guides/security/jsse/JSSERefGuide.html)。您也可以将博客条目的作者留下评论。询问他们是否遇到任何问题。值得一试...... – Leigh
脚注:a [用于GoCardless的CFML特定客户端库](https://github.com/cfsimplicity/gocardless-cfml)现已发布。 – CfSimplicity