我試圖在嵌入模式下啓動Jetty以部署war文件。我正在使用版本爲9.4.6的jetty lib無法在嵌入模式下啓動Jetty
我在Gradle中創建了以下用於啓動Jetty並部署Web應用程序的任務。
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.'
但上面的腳本將失敗,並從失敗腳本以下錯誤
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.eclipse.jetty.server.session.SessionHandler
精確線
WebAppContext webapp = new WebAppContext()
即使我保留此行作爲腳本中的一行並刪除一切,我得到同樣的錯誤。
有趣的是,它所抱怨的類出現在jar文件jetty-server中。用於使用碼頭庫的相同腳本8.1
注意:爲了使腳本能夠在jetty 9.4上運行,我必須使用ServerConnector類而不是在Jetty 9.4中刪除的BlockingConnectot,其餘腳本是相同的。
我不知道爲什麼這個失敗。
語言是什麼呢? – ekaerovets