2017-06-23 4 views
0

Ich versuche Jetty im eingebetteten Modus zu starten, um eine WAR-Datei zu implementieren. Ich benutze Jetty Lib Version 9.4.6Ich kann Jetty nicht im eingebetteten Modus starten

Ich habe folgende Aufgabe erstellt in Gradle für den Start Jetty und die Bereitstellung der Webanwendung.

println 'Starting Jetty............' 
project.ext.server = new Server(); 
ServerConnector connector = new ServerConnector(project.ext.server); 
connector.setPort(jettyPort); 
project.ext.server.addConnector(connector); 

WebAppContext webapp = new WebAppContext() 
webapp.setContextPath('/') 
def warPath = 'build/libs/'; 
warPath += 'test-' + project.version + '.war'; 
println("Deploying WAR File : --> ${warPath}"); 
webapp.setWar(warPath) 

project.ext.server.setHandler(webapp); 
project.ext.server.start(); 
println 'Server started, waiting...' 
new StopMonitor(jettyStopPort, project.ext.server).start(); 
println 'Jetty started.' 

aber obige Skript wird mit Fehler folgenden

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.jetty.server.session.SessionHandler

Genaue Zeile aus dem Skript, das versagt ist

WebAppContext webapp = new WebAppContext() 

Auch wenn ich diese Zeile als einzelne Zeile halte im Skript und alles entfernen, bekomme ich den gleichen Fehler.

Interessanterweise ist die Klasse, für die es sich beschwert, in der JAR-Datei Jetty-Server vorhanden. Gleiches Skript für die Arbeit mit Jetty-Bibliotheken 8.1

Hinweis: Damit das Skript mit Anlegestelle 9.4 funktioniert, musste ich die ServerConnector-Klasse anstelle von BlockingConnectot verwenden, die in Anlegestelle 9.4 entfernt wurde. Der Rest des Skripts ist identisch.

Ich bin mir nicht sicher, warum das scheitert.

+0

, was Sprache ist das? – ekaerovets

Antwort

0

Vermutlich fehlen Ihnen die erforderlichen JAR-Dateien.

Würde stark Sie ermutigen, ein richtiges Build-Tool verwenden, haben Sie viele zur Auswahl.

Hier ist die jar Abhängigkeitsliste (in Baumform) für das Beispielprojekt an ...

https://github.com/jetty-project/embedded-servlet-3.1

[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ embedded-servlet-3.1 --- 
[INFO] org.eclipse.jetty.demo:embedded-servlet-3.1:war:1-SNAPSHOT 
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:compile 
[INFO] +- org.eclipse.jetty:jetty-webapp:jar:9.4.6.v20170531:compile 
[INFO] | +- org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531:compile 
[INFO] | | \- org.eclipse.jetty:jetty-util:jar:9.4.6.v20170531:compile 
[INFO] | \- org.eclipse.jetty:jetty-servlet:jar:9.4.6.v20170531:compile 
[INFO] |  \- org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531:compile 
[INFO] |  \- org.eclipse.jetty:jetty-server:jar:9.4.6.v20170531:compile 
[INFO] |   +- org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531:compile 
[INFO] |   \- org.eclipse.jetty:jetty-io:jar:9.4.6.v20170531:compile 
[INFO] \- org.eclipse.jetty:jetty-annotations:jar:9.4.6.v20170531:compile 
[INFO] +- org.eclipse.jetty:jetty-plus:jar:9.4.6.v20170531:compile 
[INFO] | \- org.eclipse.jetty:jetty-jndi:jar:9.4.6.v20170531:compile 
[INFO] +- javax.annotation:javax.annotation-api:jar:1.2:compile 
[INFO] +- org.ow2.asm:asm:jar:5.1:compile 
[INFO] \- org.ow2.asm:asm-commons:jar:5.1:compile 
[INFO]  \- org.ow2.asm:asm-tree:jar:5.1:compile 
+0

Danke, Servlet-API als Abhängigkeit hinzufügen, löste das Problem. Obwohl es bereits als transitive Abhängigkeit vorhanden war, funktionierte es immer noch nicht. –

Verwandte Themen