尝试使用 Spring Cloud Functions,我创建了一个包含单个类的外部 jar 文件,如下所示:
Public class A implements Function<String,B>{
Public B apply(String s){
//...
return instance of B;
}
}
其中 B 是我在单独的库中的自定义对象。我的应用程序(单独的 spring boot 应用程序)可以使用Catalog.lookup()
jar 从 jar 中找到正确的类并执行该功能。问题是每当我将返回值设置为 B.
String s = ...
Function <String, B> function = catalog.lookup("A");
B objectB = function.apply(s); // line that causes error
我得到一个 java.lang.ClassCastException: Caused by: java.lang.ClassCastException: com.library.B cannot be cast to com.library.B
此应用程序还从同一库中检索对象模型。我假设问题是由于类加载器,应用程序由一个类加载器加载,而 jar 由“FunctionArchiveDeployer”加载。无论如何围绕这个?还是我在这里错过了一些完全不同的东西?