java.lang.NoSuchMethodError: org.glassfish.jersey.server.ApplicationHandler.<init>
Ich habe versucht zu Debuggen, dieses Problem für ein bisschen jetzt und Suche SO und andere websites, die ich habe nicht in der Lage, eine Lösung zu finden. Ich habe alle Versionen der Abhängigkeiten, die in meinem pom.xml und machte Sie sicher, Sie sind kompatibel mit grizzly2, und ich habe auch verifiziert, dass es importiert wird. Jedoch ist Java immer noch drucken Sie diese Fehlermeldung beim ausführen:
Exception in thread "main" java.lang.NoSuchMethodError: org.glassfish.jersey.server.ApplicationHandler.<init>(Ljavax/ws/rs/core/Application;Lorg/glassfish/hk2/utilities/Binder;)V
at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.<init>(GrizzlyHttpContainer.java:334)
at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory.createHttpServer(GrizzlyHttpServerFactory.java:122)
at com.kyrahosting.daemon.Main.startServer(Main.java:30)
at com.kyrahosting.daemon.Main.main(Main.java:34)
Hier ist meine pom.xml:
4.0.0
<groupId>com.kyrapanel.daemon</groupId>
<packaging>jar</packaging>
<name>KyraPanel Daemon</name>
<artifactId>KyraDaemon</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey</groupId>
<artifactId>jersey-bom</artifactId>
<version>${jersey.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.grizzly</groupId>
<artifactId>grizzly-http-all</artifactId>
<version>2.3.30</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.25.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.25.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.3.1</version>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<!-- any other plugins -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<inherited>true</inherited>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.kyrahosting.daemon.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<jersey.version>2.17</jersey.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
Jede Hilfe wird dankbar sein!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Don ' T mix your Jersey-Versionen
Was ist anders? Fix it.
Und loszuwerden, diese
jersey-container-grizzly2-http
schon zieht in alles, was Sie für Grizzly.Nebenbei, der Fehler sagt nichts über "GrizzlyHttpServerFactory doens nicht vorhanden". Es besagt, dass es keine solche Methode (in diesem Fall der Konstruktor)
Das ist, wie Sie dies Lesen
Den Grund würden Sie diese Fehlermeldung erhalten, wenn Sie mischen-Versionen ist, weil manche sagen, Klasse in Jersey 2.25.1 ist zu versuchen, rufen Sie den Konstruktor erwähnt. Aber in der version 2.9.1 dieser Konstruktor nicht existiert. Sagen, es war nicht Hinzugefügt, bis eine spätere version. Aber beim laden von Klassen, die
ApplicationHandler
aus 2.9.1 geladen, statt aus 2.25.1. So, jetzt haben Sie die falscheApplicationHandler
version geladen. Daher der Fehler; es gibt keinen Konstruktor.Don't mix your Jersey versions
Im Dez.2017 wird dieser Satz von Maven Abhängigkeiten funktionierte gut für mich, starten Sie Jetty mit RS.