2012-02-02 147 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上写了更多背景。