文档章节

关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题

哥本哈根的小哥
 哥本哈根的小哥
发布于 2018/05/10 16:03
字数 420
阅读 133
收藏 0

在部署微信公众号项目时,在本地TOMCAT测试通过后部署到WEBLOGIC上。抛出了weblogic.net.http.SOAPHttpsURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection这样的错误。这段是第三方公司JAR包中代码抛出的异常。沟通得知第三方公司jar包中存在类似如下的代码:

HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); 

这段代码在TOMCAT下运行正常,但是在WEBLOGIC下url.openConnection()返回了SOAPHttpsURLConnection类型的对象,所以出现转换异常的错误。

注:SOAPHttpsURLConnectionHttpsURLConnection都是java.net.HttpURLConnection的子类。

如上图,在WEBLOGIC没有对使用的SSL实现类进行配置的情况下,在程序中如果正常使用java.net.URL的不带 URLStreamHandler 参数的构造方法new 一个URL对象的话,url.openConnection()默认是返回SOAPHttpsURLConnection类型对象,如果我们使用带有URLStreamHandler参数的构造方法,如下:

    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();  

以上可以在程序中解决返回的HttpURLConnection对象的具体类型。但是jar包是第三方提供的,我们不能更改代码,所以只能从Weblogic配置的层面上解决报错的问题。

解决办法:

修改 startWblogic.sh 文件

找到 JAVA_OPTIONS="${JAVA_OPTIONS}”
JAVA_OPTIONS="${JAVA_OPTIONS} -DUseSunHttpHandler=true" 屏蔽weblogic自身的默认连接

千万要注意 -DUseSunHttpHandler=true 是加在 JAVA_OPTION=""的里面 !!!

这个参数的目的就是告诉WebLogic使用Sun的HttpHandler而不要使用WebLogic自己的。这样配置后使用url.openConnection()就会返回HttpsURLConnection类型对象了。

本文转载自:https://blog.csdn.net/arvinrong/article/details/7715334

哥本哈根的小哥
粉丝 6
博文 42
码字总数 24625
作品 0
东城
程序员
私信 提问
漏洞预警 WebLogic WLS核心组件反序列化漏洞(CVE-2018-2893)

  Oracle FusionMiddleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。Oracle WebLogic Server是其中的...

FreeBuf
2018/07/18
0
0
国内首位中间件Oracle ACE:WebLogic执行线程耗尽解决方案

作者介绍 王超,国内第一位中间件ORACLE ACE,东方宏达中间件技术总监,原ORACLE|BEA 资深中间件现场支持工程师,14年现场支持工作经验,WebLogic 6.1/7.0/8.1/9.2/10.3/11g/12c、Tuxedo技术...

王超
2016/08/16
0
0
启动 WLS 时的身份验证错误(解决linux下问题)

故障排除 请注意,并非下面所有任务都需要完成。有些问题仅通过执行几项任务就可以解决。 快速链接 为什么发生此问题? 启动身份无效(WLS 7.0 和 WLS 8.1) 内嵌的 LDAP:丢失管理密码(WLS...

傲娇字符
2015/08/03
951
0
WebLogic 安全研究报告

作者: 图南,r00t4dm @奇安信A-TEAM 公众号: 奇安信 CERT 可能是你能找到的最详细的WebLogic安全相关中文文档 序 从我还未涉足安全领域起,就知道WebLogic的漏洞总会在安全圈内变成热点话题...

奇安信 A-Team
08/13
0
0
Spring全局事务之WebLogicJtaTransactionManager

全局事务是指在一个事务中涉及到几个事务参入者,这些事务参入者可以是我们常见的数据库操作,消息(MQ)操作等等.如同时进行下面的操作,比如"转账"操作发生在两个数据库: 1,从数据库A的的表中将...

晨曦之光
2012/04/25
836
0

没有更多内容

加载失败,请刷新页面

加载更多

相册管理

相册管理 相册管理 一、相册管理:指对所有上传的图片的归类管理。 1、创建相册:可以新建多个相册。 2、上传图片:可以上传图片到相册里。 3、搜索:输入相册名称对相册的搜索。 二、点击相...

Geek-Chic
32分钟前
5
0
pymongo和mongoengine安装和使用教程 包含常用命令行和代码示例

本文首发于个人博客https://kezunlin.me/post/e88f04e5/,欢迎阅读最新内容! pymongo and mongoengine tutorial on ubuntu 16.04 Guide version mongo 2.6.10 mongo gui: robo3t-1.3.1 pymo......

kezunlin
54分钟前
7
0
潜水一周,我精心整理了两个超级有用的职场生存之道

最近一周过的很充实,所以都没爬上来和大家 好好聊聊,原本计划的很多事情也没有下文,因为略忙,有点不可开交。需求和线上的问题常常困扰了我,或许这就是还需要提升的关键吧。 但是,好在还...

Dimple91
今天
6
0
大规模机器集群-故障自动处理(二)

本篇开始介绍具体的实现过程,为表述方便,先定义一些名词, _AutoRepairSystem: _故障自动维修系统, 缩写为ARS 原子操作:任务的最小操作,机器任务通常是指重启、重装 运维人员:运维工程师...

曲行人
今天
6
0
使用Supervisor管理任务

安装:yum install supervisor 修改配置文件:vi /etc/supervisord.conf [unix_http_server]file=/var/run/supervisor.sock ; UNIX socket 文件,supervisorctl 会使用;chmod=0700 ......

FalconChen
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部