java.io.IOException: chunk size should be less than 64k
做集成工作时使用到了第三方公司提供的接口JAR包,在本地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类型的对象,所以出现转换异常的错误。
注:SOAPHttpsURLConnection与HttpsURLConnection都是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配置的层面上解决报错的问题。
对于单机的Weblogic配置,可以在启动脚本中(比如startWebLogic.sh)在JAVA_OPTIONS增加
-DUseSunHttpHandler=true ,例如
set JAVA_OPTIONS=%JAVA_OPTIONS% %JAVA_PROPERTIES% -DUseSunHttpHandler=true -Dwlw.iterativeDev=%iterativeDevFlag% -
Dwlw.testConsole=%testConsoleFlag% -Dwlw.logErrorsToConsole=% logErrorsToConsoleFlag%
如果是配置了集群,则不必在启动脚本中增加参数,可以在weblogic控制台中针对特定server配置此参数
这个参数的目的就是告诉WebLogic使用Sun的HttpHandler而不要使用WebLogic自己的。这样配置后使用url.openConnection()就会返回HttpsURLConnection类型对象了。
分享到:
相关推荐
J2EE应用与BEA.WebLogic.Server第四部分 文件较大压缩成4部分传输的
J2EE应用与BEA.WebLogic.Server第2版
第十一章 使用 WebLogic Server JavaMail 连接 Internet 邮件 第十二章 管理 WebLogic Server 8.1 第十三章 WebLogic Server 8.1 应用程序安全 第十四章 设计产品部署 第十五章 Web 拍卖设计目标 第十六章 WebLogic ...
这是因为 WebLogic 服务器为了更好地管理和操作数据库连接,会使用自己的包装类 `weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB` 来表示 CLOB 类型的数据,而不是直接使用 Oracle 提供的标准 `oracle.sql.CLOB` 类。...
J2EE应用与BEA.WebLogic.Server第三部分 文件较大压缩成4部分传输的
J2EE应用与BEA.WebLogic.Server第二部分 文件较大压缩成4部分传输的
由于本书太大,所以压成了4个文件,要把4个文件全部下载了,才能解压。 美河提供.J2EE应用与BEA.WebLogic.Server第2版。
WebLogic JDBC Vendor Oracle Thin Blob Jar包是专门为Oracle数据库在WebLogic应用服务器环境下提供Blob类型支持的驱动包。在Oracle数据库中,Blob(Binary Large Object)数据类型用于存储大量的二进制数据,如图像...
其中,WebLogic的JDBC模块是连接数据库的关键组件,而`weblogic.jdbc.vendor.oracle.OracleResultSet`则是这个模块中的一个重要类,主要用于处理Oracle数据库查询结果集。 `OracleResultSet`是WebLogic针对Oracle...
J2EE应用与BEA.WebLogic.Server第2版 超过10mb 分三部分 第一部分
由于本书太大,所以压成了4个文件,要把4个文件全部下载了,才能解压。这是第二部分 美河提供.J2EE应用与BEA.WebLogic.Server第2版。
《J2EE应用与BEA.WebLogic.Server第2版》是由美河提供的关于Java企业级应用开发和BEA WebLogic Server服务器使用的专著。这本书详细介绍了如何利用J2EE(Java 2 Platform, Enterprise Edition)技术构建分布式、多层...
美河提供.J2EE应用与BEA.WebLogic.Server第2版 太大分4部分 part1
《J2EE应用与BEA.WebLogic.Server第2版配书源码》是关于Java企业级应用程序开发和部署的重要参考资料,特别关注BEA WebLogic Server这一流行的应用服务器平台。源码通常提供了书中理论知识的实际应用示例,对于深入...
《实战J2EE与WebLogic Server应用开发》一书涵盖了J2EE企业级应用程序开发以及Oracle的WebLogic Server服务器的深度使用。J2EE(Java 2 Platform, Enterprise Edition)是Java平台上用于构建分布式、多层的企业级...
J2EE应用与BEA.WebLogic.Server第2版.part2.rar
J2EE应用与BEA.WebLogic.Server第2版.part1.rar
这是第三部分,J2EE应用与BEA.WebLogic.Server
首先,WebLogic Server提供了三种部署方式:自动部署、使用WebLogic.Deployer、WLShell和Ant的wldeploy任务,以及通过WebLogic Server管理控制台手动部署。这里主要介绍使用管理控制台进行手动部署。 1. 启动...