我使用在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