2012-02-02 77 views
8

我正在嘗試部署JenkinsJetty的/ webapps。我已將jenkins.war複製到此目錄,重新啓動Jetty,但是當我指向http://localhost:8080/jenkins時,系統警告:HTTP錯誤:503 ...訪問/詹金斯。原因:服務不可用

HTTP錯誤:503訪問/ jenkins問題。原因:服務不可用

這裏是我的控制檯日誌

2012-02-02 09:13:39.912:WARN:oejuc.AbstractLifeCycle:FAILED [email protected]: java.lang.IllegalStateException: No LoginService for [email protected]384 in [email protected] 
java.lang.IllegalStateException: No LoginService for [email protected]384 in [email protected] 
    at org.eclipse.jetty.security.authentication.LoginAuthenticator.setConfiguration(LoginAuthenticator.java:44) 
    at org.eclipse.jetty.security.authentication.FormAuthenticator.setConfiguration(FormAuthenticator.java:103) 
    at org.eclipse.jetty.security.SecurityHandler.doStart(SecurityHandler.java:341) 
    at org.eclipse.jetty.security.ConstraintSecurityHandler.doStart(ConstraintSecurityHandler.java:228) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90) 
    at org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:97) 
    at org.eclipse.jetty.server.session.SessionHandler.doStart(SessionHandler.java:122) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90) 
    at org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:97) 
    at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:745) 
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:242) 
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1213) 
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:699) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183) 
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:491) 
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53) 
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604) 
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535) 
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398) 
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:552) 
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:227) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:58) 
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:91) 
    at org.eclipse.jetty.server.Server.doStart(Server.java:263) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1215) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1138) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.eclipse.jetty.start.Main.invokeMain(Main.java:457) 
    at org.eclipse.jetty.start.Main.start(Main.java:600) 
    at org.eclipse.jetty.start.Main.main(Main.java:82) 
2012-02-02 09:13:39.913:WARN:oejuc.AbstractLifeCycle:FAILED [email protected]: java.lang.IllegalStateException: No LoginService for [email protected]384 in [email protected] 
java.lang.IllegalStateException: No LoginService for [email protected]384 in [email protected] 
    at org.eclipse.jetty.security.authentication.LoginAuthenticator.setConfiguration(LoginAuthenticator.java:44) 
    at org.eclipse.jetty.security.authentication.FormAuthenticator.setConfiguration(FormAuthenticator.java:103) 
    at org.eclipse.jetty.security.SecurityHandler.doStart(SecurityHandler.java:341) 
    at org.eclipse.jetty.security.ConstraintSecurityHandler.doStart(ConstraintSecurityHandler.java:228) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90) 
    at org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:97) 
    at org.eclipse.jetty.server.session.SessionHandler.doStart(SessionHandler.java:122) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90) 
    at org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:97) 
    at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:745) 
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:242) 
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1213) 
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:699) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183) 
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:491) 
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53) 
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604) 
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535) 
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398) 
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:552) 
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:227) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:58) 
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:91) 
    at org.eclipse.jetty.server.Server.doStart(Server.java:263) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1215) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1138) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.eclipse.jetty.start.Main.invokeMain(Main.java:457) 
    at org.eclipse.jetty.start.Main.start(Main.java:600) 
    at org.eclipse.jetty.start.Main.main(Main.java:82) 
2012-02-02 09:13:39.914:WARN:oejw.WebAppContext:Failed startup of context o.e.j.w.WebAppContext{/jenkins,file:/tmp/jetty-0.0.0.0-8080-jenkins.war-_jenkins-any-/webapp/},/home/ic/jetty/webapps/jenkins.war 
java.lang.IllegalStateException: No LoginService for [email protected]384 in [email protected] 
    at org.eclipse.jetty.security.authentication.LoginAuthenticator.setConfiguration(LoginAuthenticator.java:44) 
    at org.eclipse.jetty.security.authentication.FormAuthenticator.setConfiguration(FormAuthenticator.java:103) 
    at org.eclipse.jetty.security.SecurityHandler.doStart(SecurityHandler.java:341) 
    at org.eclipse.jetty.security.ConstraintSecurityHandler.doStart(ConstraintSecurityHandler.java:228) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90) 
    at org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:97) 
    at org.eclipse.jetty.server.session.SessionHandler.doStart(SessionHandler.java:122) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90) 
    at org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:97) 
    at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:745) 
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:242) 
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1213) 
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:699) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:36) 
    at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:183) 
    at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:491) 
    at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:138) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:142) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:53) 
    at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:604) 
    at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:535) 
    at org.eclipse.jetty.util.Scanner.scan(Scanner.java:398) 
    at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:332) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:118) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:552) 
    at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:227) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:58) 
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:53) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:91) 
    at org.eclipse.jetty.server.Server.doStart(Server.java:263) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59) 
    at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1215) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1138) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.eclipse.jetty.start.Main.invokeMain(Main.java:457) 
    at org.eclipse.jetty.start.Main.start(Main.java:600) 
    at org.eclipse.jetty.start.Main.main(Main.java:82) 
... 

2012-02-02 09:13:41.235:INFO:oejs.AbstractConnector:Started [email protected]:8080 

我怎樣才能解決這個問題?

在此先感謝。

回答

1

使用Jetty附帶的樣本測試JAAS模塊。

<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 
    <Set name="contextPath">/jenkins</Set> 
    <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/jenkins.war</Set> 
    <Set name="securityHandler"> 
    <New class="org.eclipse.jetty.security.ConstraintSecurityHandler"> 
    <Set name="loginService"> 
     <New class="org.eclipse.jetty.plus.jaas.JAASLoginService"> 
     <Set name="name">Test JAAS Realm</Set> 
     <Set name="loginModuleName">xyz</Set> 
     </New> 
    </Set> 
    </New> 
    </Set> 
</Configure> 

然後,這點的境界和定義分別etc/login.confetc/login.properties

遵循這個例子,設置你自己的JAAS模塊應該相對容易。

14

當試圖在一個新的(8.1.X)Jetty實例中安裝Jenkins時,我遇到了同樣的錯誤。似乎有bug fix可能引入了這種行爲,並且在安裝Jenkins/Hudson時顯示。現在需要明確給出安全領域/登錄服務。

在沒有嚴格的Jetty安全要求的環境下,即:非Jetty愛好者只是想讓Jenkins啓動並運行。創建一個包含安全處理程序的上下文文件$ JETTY_HOME \ contexts \ jenkins.xml。

<Configure class="org.eclipse.jetty.webapp.WebAppContext"> 
    <Set name="contextPath">/jenkins</Set> 
    <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/jenkins.war</Set> 

    <Get name="securityHandler"> 
    <Set name="loginService"> 
     <New class="org.eclipse.jetty.security.HashLoginService"> 
      <Set name="name">Jenkins Realm</Set> 
      <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set> 
     </New> 
    </Set> 
    </Get> 

</Configure> 

希望這有助於!

+0

這是一個更好的答案,因爲它提供了放置XML的路徑。 – 2012-06-23 08:40:16

+2

@Randolph這不適合我在碼頭9. – user3111525 2014-07-22 09:06:58

+1

也檢查http://pietervogelaar.nl/ubuntu-12-04-install-jenkins-1-4-with-jetty-9 – Sithsu 2014-09-18 12:30:22

0

在我的情況下,問題是我已經切換到openjdk-1.7,但沒有安裝'devel'軟件包。切換到IBM解決了它。

0

Jetty配置爲使用Java認證和授權服務。安全性是在領域(用戶名+角色)中定義的。

基本上,你所要做的就是告訴jetty使用爲已部署的jenkins.war文件定義安全性。最簡單的方法是創建一個jenkins.xml文件並將它放在與jenkins.war文件相同的文件夾中。

文件的內容是這個(用於jetty9)

<?xml version="1.0"?> 
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd"> 
<Configure id='wac' class="org.eclipse.jetty.webapp.WebAppContext"> 
    <Set name="contextPath">/jenkins</Set> 
    <Set name="war"><Property name="jetty.webapps" default="."/>/jenkins.war</Set> 
    <Set name="extractWAR">true</Set> 
    <Set name="securityHandler"> 
    <New class="org.eclipse.jetty.security.ConstraintSecurityHandler"> 
    <Set name="loginService"> 
     <New class="org.eclipse.jetty.jaas.JAASLoginService"> 
     <Set name="name">Test JAAS Realm</Set> 
     <Set name="loginModuleName">xyz</Set> 
     </New> 
    </Set> 
    </New> 
    </Set> 
</Configure> 
0

剛一說明,如果你最近開始得到這個錯誤,並認爲你可能使用了AJP反向代理,則可能是」已經悄悄更新爲Jenkins 2.x,它打破了這一點。

幸運的是,如果您現在在Apache 2.4上,這很容易修復 - 您可以使用HTTP反向代理而不是described here

我在this post上寫了更多背景。