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 阅读(2007) 评论(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  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: