The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks
          摘要導讀:

          更新20141120: 我始終對修改生產上weblogic上的配置文件這一方法心存擔憂(生產上的服務器不允許隨便修改,可能會影響到其他應用),所以想使用代碼的方式解決此問題,在對方法一失敗原因進行了進一步查看,日志打出來的的異常信息為如下: com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnectionOldImpl cannot be cast to javax.net.ssl.HttpsURLConnection 在網上搜索之后,并經過自己的判斷,發現我在new URL時傳的是com.sun.net.ssl.interna...

          更新20141120:

          我始終對修改生產上weblogic上的配置文件這一方法心存擔憂(生產上的服務器不允許隨便修改,可能會影響到其他應用),所以想使用代碼的方式解決此問題,在對方法一失敗原因進行了進一步查看,日志打出來的的異常信息為如下:

          com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnectionOldImpl cannot be cast to javax.net.ssl.HttpsURLConnection

          在網上搜索之后,并經過自己的判斷,發現我在new URL時傳的是com.sun.net.ssl.internal.www.protocol.https.Handler這個handler,而報錯信息是javax.net.ssl這個包下面的,再看我的代碼:

           

          package java.net.HttpURLConnection;httpURLConnection = (HttpURLConnection) this.url.openConnection();

           

          這就說明了這兩個類不在一個包下面,仔細看了別人的回復,不難發現,這兩個類(HttpsURLConnectionOldImpl、HttpsURLConnection)屬于不同的包,看到這個貼子最下面(http://bbs.csdn.net/topics/380110416)有一個說明,Handler使用錯誤,我一看就知道這是問題的關鍵點,果斷修改前面方法一使用的handler: com.sun.net.ssl.internal.www.protocol.https.Handler,改為:sun.net.www.protocol.https.Handler,完整代碼如下:

          this.url =newURL(null, url,newsun.net.www.protocol.https.Handler());

          重新啟動后再次進行調試成功,自此證明,方法一也是有效的,不過對于使用別人的API jar包的不是很方便,我現在使用的辦法是將別人的代碼進行重寫,再調用自己寫的類解決問題,修改weblogic的配置文件生產上不好修改,只能用代碼實現了。

          --------------------------------------分割線20141119------------------------------------------

          Weblogic問題解決:

          在進行調試時,本地(TOMCAT)開發完成,并本地測試通過,但是部署至Weblogic上時,出現以下異常信息:

          weblogic.net.http.SOAPHttpsURLConnection incompatible with javax.net.ssl.HttpsURLConnection

          在網上搜索之后,發現是由于在weblogic上使用HttpsURLConniection時,會默認使用weblogic自己的類weblogic.net.http.SOAPHttpsURLConnection,導致出現問題:

          http://bbs.csdn.net/topics/380076374

          http://luanxiyuan.iteye.com/blog/1808097

          http://www.xuebuyuan.com/593657.html

          按照上面的貼子找到解決辦法:

          • 1. 按照網上的辦法,可以修改代碼解決問題,但是由于我們使用的是別人的jar包,不能修改代碼,:

           

          URL url = new URL(null,"https://www.etrade.com",new com.sun.net.ssl.internal.www.protocol.https.Handler());// 指定了handler后openConnection()返回了HttpsURLConnection類型對象HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();

           

          • 2. 配置weblogic,在startWeblogic.sh文件中添加參數:-DUseSunHttpHandler=true,我最終添加了一行:MEM_ARGS="${MEM_ARGS} -DUseSunHttpHandler=true"

              

          以上兩個方法,方法一嘗試了之后,直接導致weblogic有異常但是沒有報錯信息,在開發、測試環境無法調查,debug也沒用;無奈只能選用第二種方法,配置參數后,成功配置,并測試成功;

           

          總結:方法一我嘗試過幾種方法,均失敗,有用的還是只有第二種方法,如有其他可以使用的方法,歡迎大家推薦

          posted on 2015-03-08 13:05 Eric_jiang 閱讀(2030) 評論(1)  編輯  收藏

          Feedback

          # re: weblogic.net.http.soaphttpsurlconnection incompatible with javax.net.ssl.httpsurlconnection解決辦法 2015-03-08 13:17 Eric_jiang
          http://www.baidu.com/link?url=rCwVsEu-MyPmz8M50ump1FaEWipI9vf7xeyf_A4pBhNpa3vXcfkuh35c0G2_kLWGjtFTzp-dG4ggCMOG8k2Wpa  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 潞西市| 图们市| 津市市| 闽清县| 兰坪| 任丘市| 奉节县| 察哈| 丹阳市| 确山县| 镇安县| 仁寿县| 麻栗坡县| 报价| 和田市| 青神县| 宜丰县| 多伦县| 女性| 三江| 个旧市| 垦利县| 正宁县| 巫山县| 杭州市| 台北市| 蕲春县| 方城县| 邢台市| 丰顺县| 孟连| 巢湖市| 宝丰县| 蒙自县| 嘉峪关市| 乌海市| 介休市| 阿拉善左旗| 隆昌县| 清远市| 北海市|