2016-03-23 5 views
1

Ich habe seit vielen Stunden kämpfen bei der Bereitstellung eines einfachen HelloWorld Webservice in Java geschrieben auf einem Windows 7 (später krank brauchen auf Linux) PC.Laufen Jersey 2 Server mit Anlegesteg 9

Die meisten Beispiele, die ich gefunden habe (von allgemeinen Orten und anderen Fragen zu stackoverflow), haben nicht funktioniert oder veraltete Versionen von Jersey und anderen Librarys verwendet.

Mein Ziel ist es, einen Webservice in Java zu schreiben, wo es einfach zu programmieren ist und es auch tut. Es muss nichts Besonderes in Bezug auf die Menge der Anfrage laufen und Leistung (meine Anforderungen sind minimal)

Frommy Forschung, ich bin gekommen, um zu glauben, die Verwendung von Jersey mit eingebetteten netty Web-Service sollte anser, was ich suchte für (wenn jemand besser weiß, würde ich auch darüber gerne hören, hart es nicht mein Hauptproblem in dieser questetion ist aber vielleicht nur eine alternative Lösung sein)

ich habe über dieses eaxmple kam:

jersey2-jetty-example

Es gibt Ihnen ein Arbeitsprojekt mit der Abhängigkeiten benötigt von Maven zu Jersey und Jetty Embedded-Server laufen (die als ein eigenständiges Glas ausgeführt werden kann, ist genau die Art von einfachen Bereitstellung ich suche)

Ich klonte das Beispiel und hat alles läuft. Ich hatte Probleme importieren es zu verdunkeln, so habe ich den folgenden Befehl auf dem Beispiel-Ordner:

mvn -DoutputDirectory =/lib Abhängigkeit:. Copy-Abhängigkeiten

, die eine Kopie des Ordner lib geben die Deps von Maven benötigt, dann habe ich ein Java-Projekt mit diesem Lib-Ordner im Build-Pfad und gleichen Quellcode wie das Beispiel erstellt, und alles hat gut funktioniert. Das Problem tritt auf, wenn ich versuche, dieses Java-Projekt zu nehmen und es als ausführbares JAR zu exportieren (mit der Option der enthaltenen Quelldateien!). Ich kann dann java -jar verwenden, um den Dienst auszuführen, aber wenn ich versuche, über den Browser darauf zuzugreifen (wie bei der Ausführung von Eclipse), funktioniert es nie, ich bekomme immer den Fehler 404 für die gleichen Routen hat vor einer Sekunde gearbeitet, als ich von Eclipse lief. Ich konnte nicht herausfinden, was die Ursache des Problems oder was Eklipse anders macht, dass es sich auf eine andere Weise verhält.

Antwort

1

Ich habe den Grund gefunden das Glas nicht funktioniert, während in Eclipse es funktioniert hat, war es wegen eines doppelten Glases, die ich importierte das verursachte das Problem. Die Gläser, die ich von Maven in der git-Probe bekommen habe, hatten 2 Doppelgläser, die hamcrest-all und hamcrest-core heißen. das Entfernen eines von ihnen aus dem Projektbuildpfad behob das Problem.

Wenn jemand die andere am Ende offenen questetion beantworten, die ich fragte, was, wenn Jersey mit und Anlegesteg wie diese ist die beste Lösung für meine requirments ich glücklich sein, darüber zu hören