Das Projekt, das ich ursprünglich erstellt habe, war Spring Boot 1.3.3, Da es im April eine Spring Framework-Sicherheitsanfälligkeit gab, Wir haben uns für ein Upgrade auf Spring Boot 1.5.12 entschieden, was dem entspricht.
Natürlich hat es nicht gereicht, die Version einfach mit pom.xml umzuschreiben ... Die zu diesem Zeitpunkt aufgetretenen Probleme und deren Lösung sind nachstehend aufgeführt.
Ich habe die folgenden zwei Anmerkungen im Testcode verwendet: Mit dem Versions-Upgrade wurde ich wütend, dass ich es nicht finden konnte.
@SpringApplicationConfiguration(classes=MyConfig.class)
@WebIntegrationTest
Nach der Untersuchung wird gesagt, dass beide stattdessen auf der folgenden Seite "@ SpringBootTest" verwenden. https://stackoverflow.com/questions/42395225/springapplicationconfiguration-not-found-erroneous-spring-boot-starter-test-con
From @SpringApplicationConfiguration(classes=MyConfig.class) to @SpringBootTest(classes=MyConfig.class) From @WebIntegrationTest to @SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT) (or RANDOM_PORT)
Ich habe diesmal beide verwendet, also habe ich es wie folgt umgeschrieben.
@SpringBootTest(classes=MyConfig.class, webEnvironment=WebEnvironment.RANDOM_PORT)
Mit dem oben genannten wurde der Fehler des Testcodes behoben.
# Schnittstelle nicht gefunden Fehler
Ich habe die EmbeddedServletContainerCustomizer-Schnittstelle importiert, um den Fehlerbildschirm anzuzeigen.
Wenn ich es nach dem Upgrade baue, werde ich wütend, dass ich es nicht finden kann.
Ja wirklich? Ich habe nach einer Alternative wie dem obigen Testcode gesucht, aber ich konnte sie nicht finden ...
Ist es wirklich nicht da? Ich dachte, und als ich die Hierarchie unter `` `spring-boot-1.5.12.RELEASE.jar``` durchsuchte,
```embeddedservletcontainercustomizer```Die Schnittstellendatei selbst war vorhanden.
Wenn ich versuche, den Inhalt darauf anzuzeigen, tritt der folgende Fehler auf und ich kann den Inhalt nicht sehen.```
java.util.zip.ZipException: invalid LOC header (bad signature)
Als ich es nachgeschlagen habe, scheint es, dass die Ursache darin liegt, dass die Version der JAR-Datei falsch ist. Um dieses Problem zu umgehen, löschen Sie den folgenden Maven-Repository-Ordner und starten Sie STS neu.
C: \ Benutzer \ [Benutzername] \ .m2 \ Repository
Damit ist die Behandlung des nicht gefundenen Schnittstellenfehlers abgeschlossen.
Abgesehen von den beiden oben genannten Entsprechungen Als ich darüber nachdachte, das Projekt nach dem Versions-Upgrade auszuführen, Der folgende verzweifelte Fehler tritt auf.
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at jp.co.ysk.pepper.qlip.App.main(App.java:12)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
Ich habe einige Nachforschungen angestellt, aber ich kenne die Grundursache nicht. Dieser Fehler wurde vorerst auch behoben, indem die beiden Kompilierungsfehler beseitigt wurden.
Ich fühle mich ein wenig unwohl, aber ... das war's.