Ich versuche, eine Bean aus Quellen zu erstellen, die von generiert wurden wsdl2java
.
Jedes Mal, wenn ich versuche, meine Spring Boot-App auszuführen, erhalte ich die folgende Fehlermeldung:
Verursacht durch: java.lang.ClassCastException: Klasse org.apache.cxf.endpoint.ClientImpl kann nicht in Klasse com.xignite.services.XigniteCurrenciesSoap umgewandelt werden (org.apache.cxf.endpoint.ClientImpl und com.xignite.services.XigniteCurrenciesSoap sind im unbenannten Modul des Loaders ‘app’)
Ich bin mir nicht sicher, wie genau ich generierte Quellen als Modul in meine Spring Boot-Hauptanwendung aufnehmen soll.
Meine Verzeichnisstruktur ist:
├── build
│ └── generatedsources
│ └── src
│ └── main
│ └── java
│ └── com
│ └── xignite
│ └── services
│
└── src
└── main
├── java
│ └── io
│ └── mateo
│ └── stackoverflow
│ └── soapconsumption
└── resources
└── wsdls
Relevante Systeminformationen:
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
- Klasse 5.2
Ich habe das Projekt auch hier auf Github hochgeladen: https://github.com/ciscoo/soap-consumption-spring-boot
Ich bin mir bei wsdl hier nicht ganz sicher … aber haben Sie versucht, a hinzuzufügen
module-info.java
zu Ihrem Projekt und/oder stellen Sie sicher, dass das Modul, von dem Sie abhängen (für Klassenorg.apache.cxf.endpoint.ClientImpl
) wird im Modulpfad und nicht im Klassenpfad aufgelöst.– Namann
5. Februar 2019 um 14:54 Uhr
Es gibt kein “Weil“ in der Fehlermeldung. Dieser Nachtrag sagt Ihnen nur, dass sich beide Klassen im selben Modul befinden, dem unbenannten Modul des Ladeprogramms „app“, was dem Leser hilft zu verstehen, dass dieses Problem völlig unabhängig von Modulen ist.
ClientImpl
ist einfach kein Untertyp vonXigniteCurrenciesSoap
; es ist ein gewöhnlichesClassCastException
.– Holger
10. Februar 2019 um 13:08 Uhr
In meinem Fall war es ein bisschen anders. Klassenumwandlungsausnahmen treten manchmal aufgrund des Konflikts zwischen verschiedenen Java-Versionen auf. In pom.xml habe ich festgelegt, dass “1.8 verwendet wird, aber in Intellje IDE habe ich die Verwendung von Java-Version 11 eingestellt. Nach dem Ändern der Java-Version von 11 auf 8 wurde das Problem für mich gelöst.
– Saman Salehi
13. Juni 2021 um 15:36 Uhr
Ich habe Kotlin neben Java verwendet, das Problem wurde einfach durch Neukompilieren der Kotlin-Klasse behoben
– Harsch
31. Mai um 7:58 Uhr