gpt4 book ai didi

基于Java的Azure函数-异常: ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader无法转换

转载 作者:行者123 更新时间:2023-12-02 08:52:42 24 4
gpt4 key购买 nike

我是 Java 新手。我使用 Visual Studio Code 创建了最简单的 Http 触发的 Azure 函数。代码是模板的默认代码,未经修改。但是,当我调用http://localhost:7071/api/HttpExample时出现错误

可能出现什么问题并修复什么?

Http Functions:

HttpExample: [GET,POST] http://localhost:7071/api/HttpExample

[14.3.2020 11.36.30] Host lock lease acquired by instance ID '0000000000000000000000008457DB20'.
[14.3.2020 11.38.23] Executing HTTP request: {
[14.3.2020 11.38.23] "requestId": "22ff78da-8114-4dfe-a76e-ad2c3f2d9e99",
[14.3.2020 11.38.23] "method": "GET",
[14.3.2020 11.38.23] "uri": "/api/HttpExample"
[14.3.2020 11.38.23] }
[14.3.2020 11.38.23] Executing 'Functions.HttpExample' (Reason='This function was programmatically
called via the host APIs.', Id=137d2055-2fbf-4eba-bbb7-fe6167aae5db)
[14.3.2020 11.38.23] Executed 'Functions.HttpExample' (Failed, Id=137d2055-2fbf-4eba-bbb7-
fe6167aae5db)
[14.3.2020 11.38.23] System.Private.CoreLib: Exception while executing function:
Functions.HttpExample. System.Private.CoreLib: Result: Failure
Exception: ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast
to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and
java.net.URLClassLoader are in module java.base of loader 'bootstrap')
Stack: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be
cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and
java.net.URLClassLoader are in module java.base of loader 'bootstrap')
[14.3.2020 11.38.23] at com.microsoft.azure.functions.worker.reflect.DefaultClassLoaderProvider.addUrlToSystemClassLoader(Default
ClassLoaderProvider.java:72)

enter image description here

最佳答案

根据堆栈跟踪中是否存在 java.base/jdk.internal.loader.ClassLoaders 判断,您正在使用 Java 9 或更高版本。 Spring Boot 的 DefaultRestartInitializer 尝试将应用程序类加载器强制转换为 URLClassLoader。这适用于 Java 8 及更早版本,但不适用于 Java 9 或更高版本。 Spring Boot 在 2.0 中进行了更新,以应对 Java 9 中的这一变化。

如果您想在 Java 9 或更高版本中使用 Spring Boot,您应该升级到 Spring Boot 2。在撰写本文时,最新版本是 2.0.5,它支持 Java 8、9 和 10。 Spring Boot 2.1将于今年晚些时候发布,将添加对 Java 11 的支持。

关于基于Java的Azure函数-异常: ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader无法转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60683179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com