UPDATE: So möchte ich nur darauf hinweisen, dass, bevor ich diese Frage gestellt, ich versucht die Lösung, die ich auf ähnlichen Stackoverflow-Fragen wie this one gesehen habe. Es gab mir immer noch Laufzeitfehler, also entschied ich mich, diese Frage zu schreiben. mvn dependency:tree
ist was ich gesucht habe, danke @dunni. Mit mvn dependency:tree
konnte ich die tatsächlichen Namen der Trikots Abhängigkeit finden, der meine Anwendung wurde zu brechen und den Ausschluß aktualisiert, indem sie den Wechsel von:Frühling Jersey - java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties() Ljava/util/Karte
<exclusions>
<exclusion>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
</exclusion>
</exclusions>
An:
<exclusions>
<exclusion>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
</exclusion>
</exclusions>
Das funktioniert jetzt.
Seit langer Zeit arbeite ich an dieser Spring Jersey REST-Anwendung mit 1 internen Unternehmens-Repository. Jetzt habe ich herausgefunden, dass eine Bibliothek, die ich benutzen muss, nur in einem zweiten internen Unternehmens-Repository existiert. Ich meine .m2 aktualisiert -> settings.xml Konfiguration des Verweis auf die neuen Repo wie so hinzuzufügen:
<settings>
<mirrors>
<mirror>
<id>internal-repository1</id>
<name>name</name>
<url>http://repo1.company.com/repositories/</url>
<mirrorOf>*, !repo2</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>profile</id>
<repositories>
<repository>
<id>repo1</id>
<name>repo1</name>
<url>http://repo1.company.com/repositories/</url>
</repository>
<repository>
<id>repo2</id>
<name>repo2</name>
<url>http://repo2.company.com/respositories/</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>profile</activeProfile>
</activeProfiles>
</settings>
Dies funktioniert. Ich kann in der System.out sehen, dass es versucht, die Repo2 exklusive Abhängigkeit von repo1.company.com/repositories/ herunterzuladen. Es schlägt fehl, dann versucht es, es von repo2.company.com/repositories herunterzuladen, und es ist erfolgreich. Der Build wird fortgesetzt, und Tomcat wird schließlich auf localhost: 8080 gestartet und alles ist in Ordnung.
Das Problem ist, wenn ich versuche, jede meiner Jersey REST-Endpunkte für den Zugriff auf I eingerichtet habe, erhalte ich den Laufzeitfehler in der Frage Titel erwähnt:
ERROR org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[my.package.name]
- Allocate exception for servlet my.package.name.JerseyConfig
java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
Ich weiß für eine Tatsache, dass die Problem liegt irgendwo in dieser neuen Abhängigkeit, die ich versuche zu verwenden. Wenn ich die Abhängigkeit in meiner pom.xml auskommentiere und die Anwendung erneut ausführen, funktioniert alles einwandfrei. Alle REST-Endpunkte sind funktionsfähig. Kommentieren Sie die Abhängigkeit, führen Sie die Anwendung erneut aus, und versuchen Sie, auf meine REST-Endpunkte zuzugreifen, und ich erhalte den obigen Fehler.
Wie finde ich heraus, warum diese Abhängigkeit meine Jersey-Anwendung zur Laufzeit bricht?
Sie haben höchstwahrscheinlich einen Konflikt in Ihren Abhängigkeitsversionen. Führe 'mvn dependency: tree' aus und poste die Ausgabe hier. – dunni
Danke @dunni. Meine Frage war ** wie ** Ich finde heraus, warum es mir Laufzeitfehler gab, und 'mvn dependency: tree' war genau das, wonach ich suchte. Die ' ' wurde aktualisiert und jetzt scheint meine Anwendung gut zu funktionieren. Außerdem habe ich meine Frage aktualisiert, um zu zeigen, wie ich das Problem behoben habe. –
bscott