无法转换为类,因为它们位于加载程序“app”的未命名模块中

新手上路,请多包涵

我正在尝试从 wsdl2java 生成的源创建一个 bean。

每次我尝试运行我的 Spring Boot 应用程序时,都会收到以下错误:

引起:java.lang.ClassCastException:类 org.apache.cxf.endpoint.ClientImpl 不能转换为类 com.xignite.services.XigniteCurrenciesSoap(org.apache.cxf.endpoint.ClientImpl 和 com.xignite.services.XigniteCurrenciesSoap 是在加载程序’app’的未命名模块中)

我不确定如何将生成的源代码作为一个模块包含在我的主 Spring Boot 应用程序中。

我的目录结构是:

 ├── build
│   └── generatedsources
│       └── src
│           └── main
│               └── java
│                   └── com
│                       └── xignite
│                           └── services
│
└── src
    └── main
        ├── java
        │   └── io
        │       └── mateo
        │           └── stackoverflow
        │               └── soapconsumption
        └── resources
           └── wsdls

相关系统信息:

 openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.1+13)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)

  • Spring Boot 2.1.2.RELEASE
  • 摇篮 5.2

我还在这里将项目上传到 Github: https ://github.com/ciscoo/soap-consumption-spring-boot

原文由 Cisco 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

我有一个类似的案例,并且(正如@Holger 在评论中提到的那样)消息中的模块信息只是误导 - 这是一个试图将某些东西投射到不匹配的东西的实际案例。

在您的情况下, ClientImpl 根本不是 XigniteCurrenciesSoap 的子类型。

原文由 orirab 发布,翻译遵循 CC BY-SA 4.0 许可协议

堆栈跟踪试图告诉您您已将 XigniteCurrenciesSoap 转换为 ClientImpl

比如下面的例子:

 Object returnObj= getXigniteCurrenciesSoap();
return (ClientImpl) returnObj;

您必须找出您在代码中的何处执行此操作并修复它。

原文由 Hotpot with Kraut 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题