开发者社区> 问答> 正文

基于Java的Azure函数-异常:ClassCastException

我是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)

问题来源:Stack Overflow

展开
收起
montos 2020-03-26 09:34:57 602 0
1 条回答
写回答
取消 提交回答
  • 从堆栈跟踪中是否存在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 Boot2。撰写本文时,最新版本是2.0.5,支持Java 8、9和10。Spring Boot 2.1将于今年晚些时候发布,将增加对Java 11的支持。

    回答来源:Stack Overflow

    2020-03-26 09:37:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载