zoukankan      html  css  js  c++  java
  • 在Jetty中部署Jenkins遇到的问题

    1. Jetty 9.0.3 启动时的错误:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [root@kvm-guest jetty-9.0.3]# java -jar start.jar
    Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/jetty/start/Main : Unsupported major.minor version 51.0
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
            at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    Could not find the main class: org.eclipse.jetty.start.Main. Program will exit.

    原因:Jetty 9 需要 JVM 1.7 的支持(我原来的JVM是1.6) 
    解决方案:使用Java 1.7即可。

    2. 将jenkns.war复制到webapp目录后,启动Jetty,但jenkins访问出错,HTTP ERROR 503。 
    启动和关闭Jetty的命令为:

    1
    2
    3
    [root@kvm-guest jetty-9.0.3]# java -jar start.jar -DSTOP.PORT=8881 -DSTOP.KEY=magic --daemon &
     
    [root@kvm-guest jetty-9.0.3]# java -jar start.jar -DSTOP.PORT=8881 -DSTOP.KEY=magic --stop

    在浏览器中访问时,遇到的错误信息如下:

    1
    2
    3
    4
    5
    HTTP ERROR: 503
    Problem accessing /jenkins/. Reason:
       Service Unavailable
    ------------
    Powered by Jetty

    查看Jetty的log中,可以看到如下的错误信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    2013-05-21 14:33:31.265:WARN:oejuc.AbstractLifeCycle:main: FAILED org.eclipse.jetty.security.ConstraintSecurityHandler@70188b41: java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.FormAuthenticator@790bb6f4 in org.eclipse.jetty.security.ConstraintSecurityHandler@70188b41
    java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.FormAuthenticator@790bb6f4 in org.eclipse.jetty.security.ConstraintSecurityHandler@70188b41
            at org.eclipse.jetty.security.authentication.LoginAuthenticator.setConfiguration(LoginAuthenticator.java:67)
            at org.eclipse.jetty.security.authentication.FormAuthenticator.setConfiguration(FormAuthenticator.java:131)
            at org.eclipse.jetty.security.SecurityHandler.doStart(SecurityHandler.java:375)
            at org.eclipse.jetty.security.ConstraintSecurityHandler.doStart(ConstraintSecurityHandler.java:457)
            at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
    ...................
    2013-05-21 14:33:31.267:WARN:oejuc.AbstractLifeCycle:main: FAILED org.eclipse.jetty.server.session.SessionHandler@5b5e91e5: java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.FormAuthenticator@790bb6f4 in org.eclipse.jetty.security.ConstraintSecurityHandler@70188b41
    java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.FormAuthenticator@790bb6f4 in org.eclipse.jetty.security.ConstraintSecurityHandler@70188b41
            at org.eclipse.jetty.security.authentication.LoginAuthenticator.setConfiguration(LoginAuthenticator.java:67)
            at org.eclipse.jetty.security.authentication.FormAuthenticator.setConfiguration(FormAuthenticator.java:131)
    ...................
    2013-05-21 14:33:31.268:WARN:oejw.WebAppContext:main: Failed startup of context o.e.j.w.WebAppContext@729b9707{/jenkins,file:/tmp/jetty-0.0.0.0-8080-jenkins.war-_jenkins-any-/webapp/,STARTING}{/root/jetty-9.0.3/webapps.demo/jenkins.war}
    java.lang.IllegalStateException: No LoginService for org.eclipse.jetty.security.authentication.FormAuthenticator@790bb6f4 in org.eclipse.jetty.security.ConstraintSecurityHandler@70188b41
            at org.eclipse.jetty.security.authentication.LoginAuthenticator.setConfiguration(LoginAuthenticator.java:67)
            at org.eclipse.jetty.security.authentication.FormAuthenticator.setConfiguration(FormAuthenticator.java:131)
            at org.eclipse.jetty.security.SecurityHandler.doStart(SecurityHandler.java:375)
            at org.eclipse.jetty.security.ConstraintSecurityHandler.doStart(ConstraintSecurityHandler.java:457)
            at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:69)
            at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:108)
            at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:90)

    原因:Jetty 8.1.0之后对安全性有了一些要求,需要显示注明安全域(security realm)。 
    解决方法:编辑(或新建) webapps/jenkins.xml 文件,添加如下配置。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <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>

    另外,Jetty 自带的示例:webapps.demo/test.xml 中也有security realm相关的配置。 
    解决了这两个问题后,Jenkins示例URL:http://192.168.52.11:8080/jenkins/ 就可以正常访问了。

    参考资料:

    http://www.eclipse.org/jetty/documentation/current/what-jetty-version.html

    http://stackoverflow.com/questions/9111759/http-error-503-accessing-jenkins-reason-service-unavailable

    https://wiki.jenkins-ci.org/display/JENKINS/Jetty

  • 相关阅读:
    【数据库】python访问mysql
    给vs2015添加EF
    SQL Sever 2008 R2版本添加Northwin数据库错误解决
    c#进程、定时器初步学习
    联动下拉框显示省市县
    第一次网站初尝试爬的坑
    关闭程序主窗体程序不结束,主要应用于登录界面
    基于三层架构的增删改查Get知识点
    python中的异常捕获怎么用?
    VS版本下载
  • 原文地址:https://www.cnblogs.com/kaola8023/p/7087422.html
Copyright © 2011-2022 走看看