【问题标题】:Config error Jetty配置错误码头
【发布时间】:2013-06-27 03:18:42
【问题描述】:

我正在尝试在我的服务器上为 Shibboleth 身份提供程序安装和运行 Jetty 7,但我收到此错误:

[iam@web333 jetty]$ java -jar start.jar jetty.port=27335
2013-06-29 12:01:47.490:WARN:oejx.XmlConfiguration:Config error at <Call name="addConnector">|    <Arg>|      <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">|         <Arg>|           <New class="net.shibboleth.utilities.jetty7.DelegateToApplicationSslContextFactory">|             <Set name="keyStore">/home/iam/opt/shibboleth-idp/credentials/idp.jks</Set>|             <Set name="keyStorePassword">*****</Set>|           </New>|          </Arg>|        <Set name="port">27335</Set>|        <Set name="maxIdleTime">30000</Set>|      </New>|    </Arg>|  </Call> java.lang.ClassNotFoundException: net.shibboleth.utilities.jetty7.DelegateToApplicationSslContextFactory
Exception in thread "main" java.lang.ClassNotFoundException: net.shibboleth.utilities.jetty7.DelegateToApplicationSslContextFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        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)
        at org.eclipse.jetty.util.Loader.loadClass(Loader.java:100)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.nodeClass(XmlConfiguration.java:354)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:754)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.itemValue(XmlConfiguration.java:1126)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.value(XmlConfiguration.java:1029)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:777)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.itemValue(XmlConfiguration.java:1126)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.value(XmlConfiguration.java:1029)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:722)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:388)
        at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:343)
        at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:296)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1247)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1182)

我按照本指南:https://wiki.shibboleth.net/confluence/display/SHIB2/IdPJetty7Prepare 并在 jetty.xmljetty-ssl.xml 配置文件中将端口 8080 和 8443 修改为我的端口 27335 .

shib-delegatessl.xml 中,我已将端口 8443 修改为 27335。

<Configure id="Server" class="org.eclipse.jetty.server.Server">
  <Call name="addConnector">
    <Arg>
      <New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
         <Arg>
           <New class="net.shibboleth.utilities.jetty7.DelegateToApplicationSslContextFactory">
             <Set name="keyStore">/home/iam/opt/shibboleth-idp/credentials/idp.jks</Set>
             <Set name="keyStorePassword">********</Set>
           </New>
          </Arg>
        <Set name="port">27335</Set>
        <Set name="maxIdleTime">30000</Set>
      </New>
    </Arg>
  </Call>
</Configure>

如何解决此错误?如果它有效,我如何测试 Jetty? 非常感谢。

最好的问候!

【问题讨论】:

    标签: java jetty shibboleth


    【解决方案1】:

    包含net.shibboleth.utilities.jetty7.DelegateToApplicationSslContextFactory 类的jar 需要在服务器类路径中。

    这样做:

    1. 将 shibboleth jar 放入 ${jetty.home}/lib/ext 目录。
    2. 通过执行以下命令测试它们是否存在于服务器类路径中。

      $ java -jar start.jar --list-config

    3. 像以前一样启动 Jetty。

    【讨论】:

    • 我已将 xalanxerces jar 从 ${shibboleth-idp.home}/lib/endorsed 复制到 ${jetty.home}/lib/endorsed。然后我尝试启动 Jetty,但我得到了同样的错误。 ${shibboleth-idp.home}/lib里面还有很多其他的jar,需要复制到${jetty.home}/lib/ext吗?
    • 没有${jetty.home}/lib/endorsed 这样的东西,jetty 不知道、不使用,甚至不知道${jetty.home}/lib/endorsed 的配置。我无法评论 shibboleth 产品的细节及其要求。我的回答专门针对您在使用 Jetty 时遇到的错误。
    • 我在 start.ini 中使用-Djava.endorsed.dirs=lib/endorsed 调用它,如下所述:wiki.shibboleth.net/confluence/plugins/viewsource/…
    • 您在问题中报告的错误没有任何迹象表明它与 xerces 或 xalan 库有关。关注您粘贴到 wiki.shibboleth.net 的链接中的第 1 步,它指示您需要放入 ${jetty.home}/lib/ext 目录的特定 jar。
    • +1 用于 --version 命令以显示类路径上的内容。我相信我已经读了十几遍了。我开始看到入门指南假设一切都设置得很好,这是正确的。 IoC 是一个很棒的概念,需要花费数年时间才能弄清楚。
    【解决方案2】:

    这可能会有所帮助: https://wiki.shibboleth.net/confluence/display/SHIB2/IdPJetty7Prepare

    要复制的库以及在那里指定的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-28
      • 2011-01-15
      • 2014-08-18
      • 2015-02-04
      • 1970-01-01
      • 2015-06-20
      • 2012-02-26
      相关资源
      最近更新 更多