Невозможно привести к классу, потому что они находятся в безымянном модуле загрузчика 'app' - программирование
Подтвердить что ты не робот

Невозможно привести к классу, потому что они находятся в безымянном модуле загрузчика 'app'

Я пытаюсь создать компонент из источников, сгенерированных wsdl2java.

Каждый раз, когда я пытаюсь запустить приложение Spring Boot, я получаю следующую ошибку:

Вызывается: java.lang.ClassCastException: class org.apache.cxf.endpoint.ClientImpl не может быть приведен к классу com.xignite.services.XigniteCurrenciesSoap(org.apache.cxf.endpoint.ClientImpl и com.xignite.services.XigniteCurrenciesSoap находятся в неназванном модуле загрузчик "приложение")

Я не уверен, как именно я должен включать сгенерированные источники в мое основное приложение 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
  • Gradle 5.2

Я также загрузил проект на Github здесь: https://github.com/ciscoo/soap-consumption-spring-boot

4b9b3361

Ответ 1

У меня был похожий случай, и (как упомянуто @Holger в комментарии) информация о модуле в сообщении просто вводит в заблуждение - это фактический случай попытки привести что-то к чему-то, что ему не соответствует.

В вашем случае ClientImpl просто не является подтипом XigniteCurrenciesSoap.