Ich versuche, Grizzly mit Jersey als ein einzelnes Glas mit Maven Schatten-Plugin zu verpacken. Aber ich bekomme immer die Nachricht No container provider supports the type class org.glassfish.grizzly.http.server.HttpHandler
Der Code funktioniert in Eclipse, aber nicht in einem gepackten Glas:
%Vor%Hier ist die vollständige Ausnahme
%Vor%Ich baue das jar-Paket mit maven mit
%Vor%Muss ich das Schatten-Plugin ändern, um etwas anderes hinzuzufügen?
Der Fehler sieht so aus, als würde das Plugin die META-INF / services Datensätze nicht aus verschiedenen jars korrekt zusammenführen - wenn mehrere Dateien mit demselben Namen im META-INF / services Verzeichnis mehrerer Jars vorhanden sind, müssen sie zusammengeführt werden. nicht ersetzt durch den anderen. Überprüfen Sie, ob das der Fall ist.
Die folgenden Links haben mir geholfen, die folgende Lösung herauszufinden:
besonders die Antwort
Anstatt jar-with-dependencies als descriptorRef Ihrer Assembly-Plugin-Konfiguration zu verwenden, erstellen Sie unsere eigenen, z. in src / assembly / depmerge.xml (siehe unten). Diese Assembly-Konfiguration fügt einen containerDescriptorHandler hinzu, der für die META-INF / services zuständig ist.
ausführen
%Vor%ruft eine JAR-Datei im Ziel ab, die Sie mit
aufrufen können %Vor%pom.xml:
%Vor%src / assembly / depmerge.xml:
%Vor%Ich habe gerade den dummen Fehler gemacht. Konfiguriere maven-assembly-plugin auch in pom.
Assembly scheint META-INF / services zu ersetzen und "com.sun.jersey.server.impl.container.grizzly2.GrizzlyContainerProvider" zu überschreiben "in Datei com.sun.jersey.spi.container.ContainerProvider
Als Leitfaden Ссылка erwähnt, Wenn Ihr Projekt Ihr Artefakt in ein Uber-Glas packen möchte Das Assembly-Plugin bietet nur grundlegende Unterstützung. Für mehr Kontrolle, verwenden Sie das Maven Shade Plugin.
%Vor%