首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sun.net.www.protocol.https.HttpsURLConnectionImpl类不能转换为com.sun.net.ssl.HttpsURLConnection类

sun.net.www.protocol.https.HttpsURLConnectionImpl类不能转换为com.sun.net.ssl.HttpsURLConnection类
EN

Stack Overflow用户
提问于 2022-02-21 11:30:36
回答 2查看 156关注 0票数 -1

自从我更新到Java 11之后,我得到了一个异常,这是不可能确定下来的。

请注意:异常提到的类在我自己的代码中是找不到的。

堆栈跟踪只显示我的代码中哪些部分遇到了问题,但是没有给出导致问题的实际代码(第三方)的上下文。

以前在Stackoverflow中已经问过这个异常,但是我只能在找到造成这种情况的第三方代码并对其进行升级时才能解决这个问题,这(希望)意味着我可以看到它的背面。

例外情况如下:

代码语言:javascript
运行
复制
java.lang.ClassCastException: class sun.net.www.protocol.https.HttpsURLConnectionImpl cannot be cast to class com.sun.net.ssl.HttpsURLConnection (sun.net.www.protocol.https.HttpsURLConnectionImpl and com.sun.net.ssl.HttpsURLConnection are in module java.base of loader 'bootstrap')

我非常怀疑一些非常老的apache类,并将它们替换为java.net.http类(自Java 11以来就可以使用),但没有效果。

问题是:有什么方法可以找到哪个.jar包含使用HttpsURLConnectionImplHttpsURLConnection的代码?

有谁知道他们的are in module java.base of loader 'bootstrap'意味着什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-24 17:32:14

错误来自pd4ml,这是一个用于生成pdfs的java库。

我更新了最新版本(3.11.5),它解决了这个问题。

票数 0
EN

Stack Overflow用户

发布于 2022-02-21 11:40:45

在加载程序‘引导’的模块java.base中

这意味着类sun.net.www.protocol.https.HttpsURLConnectionImpl由引导加载程序加载,并作为模块base的一部分加载。这是完全无用的信息:该模块是核心的java组件(java.lang.String也在其中),而加载器是加载这些内容的那个模块。难怪;sun.*类是实现细节的一部分,是所有JDK都不需要的一部分。它对解决这个问题没有任何帮助。

例外情况如下:

只有两种选择。

  • 您忘记粘贴跟随您粘贴的东西的堆栈跟踪。堆栈跟踪是重要的部分,可以让您准确地知道在哪里查找。

  • 您已经中断了异常处理。

我猜这是选项2--这是一件很常见的事情,并通过手工教程来延续。修复是不幸的:遍历all您的代码并修复坏代码。对.getMessage()的搜索应该会让你走得很远。听起来你确实是在做这样的事:

代码语言:javascript
运行
复制
try {
  .. code here ..
} catch (Exception e) {
  log.warn(e.getClass() + ": " + e.getMessage());
}

或者类似的。这总是很糟糕的--不要仅仅是“日志/打印”,而要忘记一个异常:您希望处理任何异常,或者继续抛出。当您编写代码时,您永远不想接受一个含义不明确的异常,而只是“吞下”它。更新IDE的模板设置以生成try/catch子句;编写代码的正确方法是:“异常?嗯.我现在不想考虑它们/我不知道它们意味着什么/我知道它们意味着什么,但是现在我无法对它们做任何有用的事情,或者我无法弄清楚它们是如何发生的”,它涵盖了您需要处理异常的大部分时间,如下所示:

代码语言:javascript
运行
复制
try {
  .. stuff ..
} catch (SomethingIDoNotWantToHandleException e) {
  throw new RuntimeException("unhandled", e);
}

这将确保您现在看到该错误的位置具有实际的堆栈跟踪,然后让您知道需要更新哪个库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71205583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档