首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于jdk.internal.loader.ClassLoaders$AppClassLoader的Azure函数-异常: ClassCastException:无法强制转换类Java

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

Stack Overflow用户
提问于 2020-03-14 21:19:54
回答 1查看 809关注 0票数 0

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

可以解决的问题是什么?

代码语言:javascript
复制
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)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-16 15:40:43

从堆栈跟踪中是否存在java.base/jdk.inder.loader.ClassLoaders来判断,您使用的是Java9或更高版本。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的支持。

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

https://stackoverflow.com/questions/60683179

复制
相关文章

相似问题

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