1

我正在尝试让 Shibboleth 的身份提供程序在 Windows 2008R2 上运行。我已经安装了 Jetty 7 并且已经能够到达 Jetty Site aka http://localhost:8080。按照https://wiki.shibboleth.net/confluence/display/SHIB2/IdPJetty7Prepare上的说明,然后尝试启动 Jetty,我得到了 IllegalArgumentException。

shell的输出如下。(很多,由于 StackOverflow 的字符限制,我不得不切断一些堆栈跟踪)

我不是 java/jetty/shibboleth 大师,所以有人可以告诉我这里发生了什么吗?

谢谢

PS C:\Jetty> java -jar start.jar
WARNING: System properties and/or JVM args set.  Consider using --dry-run or --exec
2012-12-18 14:48:16.714:INFO:oejs.Server:jetty-7.6.8.v20121106
2012-12-18 14:48:16.730:INFO:oejdp.ScanningAppProvider:Deployment monitor C:\Jetty\webapps at interval 1
2012-12-18 14:48:16.730:INFO:oejdp.ScanningAppProvider:Deployment monitor C:\Jetty\contexts at interval 1
2012-12-18 14:48:16.730:INFO:oejd.DeploymentManager:Deployable added: C:\Jetty\contexts\test.xml
2012-12-18 14:48:16.808:INFO:oejw.WebInfConfiguration:Extract jar:file:/C:/Jetty/webapps/test.war!/ to C:\Users\Administ
rator\AppData\Local\Temp\jetty-0.0.0.0-8080-test.war-_-any-\webapp
2012-12-18 14:48:17.214:INFO:oejsh.ContextHandler:started o.e.j.w.WebAppContext{/,file:/C:/Users/Administrator/AppData/L
ocal/Temp/jetty-0.0.0.0-8080-test.war-_-any-/webapp/},C:\Jetty/webapps/test.war
2012-12-18 14:48:17.339:INFO:oejs.TransparentProxy:TransparentProxy @ /javadoc-proxy to http://download.eclipse.org/jett
y/stable-7/apidocs
2012-12-18 14:48:17.339:INFO:oejd.DeploymentManager:Deployable added: C:\Jetty\contexts\idp.xml
2012-12-18 14:48:18.246:WARN:oejw.WebAppClassLoader:EXCEPTION
java.lang.IllegalArgumentException: !file: jar:file:/C:/Shibboleth/2.3.8/war/idp.war!/WEB-INF/lib/activation-1.1.jar
        at org.eclipse.jetty.webapp.WebAppClassLoader.addClassPath(WebAppClassLoader.java:245)
        at org.eclipse.jetty.webapp.WebAppClassLoader.addJars(WebAppClassLoader.java:282)
        at org.eclipse.jetty.webapp.WebInfConfiguration.configure(WebInfConfiguration.java:165)
        at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:454)
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1233)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:683)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:480)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:39)
        at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186)
        at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:494)
        at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:141)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:145)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:56)
        at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:609)
        at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:540)
        at org.eclipse.jetty.util.Scanner.scan(Scanner.java:403)
        at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:337)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:121)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:555)
        at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:230)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:81)
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58)
        at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:96)
        at org.eclipse.jetty.server.Server.doStart(Server.java:275)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1266)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1189)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:472)
        at org.eclipse.jetty.start.Main.start(Main.java:620)
        at org.eclipse.jetty.start.Main.main(Main.java:95)
2012-12-18 14:48:18.246:WARN:oejw.WebAppClassLoader:EXCEPTION
java.lang.IllegalArgumentException: !file: jar:file:/C:/Shibboleth/2.3.8/war/idp.war!/WEB-INF/lib/antlr-2.7.7.jar
        at org.eclipse.jetty.webapp.WebAppClassLoader.addClassPath(WebAppClassLoader.java:245)
        at org.eclipse.jetty.webapp.WebAppClassLoader.addJars(WebAppClassLoader.java:282)
        at org.eclipse.jetty.webapp.WebInfConfiguration.configure(WebInfConfiguration.java:165)
        at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:454)
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1233)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:683)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:480)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:39)
        at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186)
        at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:494)
        at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:141)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:145)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:56)
        at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:609)
        at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:540)
        at org.eclipse.jetty.util.Scanner.scan(Scanner.java:403)
        at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:337)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:121)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:555)
        at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:230)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.util.component.AggregateLifeCycle.doStart(AggregateLifeCycle.java:81)
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:58)
        at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:96)
        at org.eclipse.jetty.server.Server.doStart(Server.java:275)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1266)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1189)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:472)
        at org.eclipse.jetty.start.Main.start(Main.java:620)
        at org.eclipse.jetty.start.Main.main(Main.java:95)
2012-12-18 14:48:18.261:WARN:oejw.WebAppClassLoader:EXCEPTION
java.lang.IllegalArgumentException: !file: jar:file:/C:/Shibboleth/2.3.8/war/idp.war!/WEB-INF/lib/antlr-runtime-3.1.3.ja
r
[******** Cut Off to get under StackOverFlow's Character Limit **************************]
4

1 回答 1

0

我使用 Maven 使用 Jetty 启动了 Shibboleth IDP。为了您的参考,我在这里为您提供了 POM 的代码和安装说明。对我来说工作得很好:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache</groupId>
<artifactId>shibboleth-idp</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>Shibboleth IDP</name>

<build>
    <finalName>idp</finalName>
    <plugins>
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>6.1.26</version>
            <configuration>
                <webApp>${basedir}/war/idp.war</webApp>
                <contextPath>/idp</contextPath>
                <connectors>
                    <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                        <port>7777</port>
                        <maxIdleTime>60000</maxIdleTime>
                    </connector>
        <connector implementation="org.mortbay.jetty.security.SslSocketConnector">
            <port>7443</port>
            <maxIdleTime>60000</maxIdleTime>
            <keystore>${basedir}/credentials/idp.jks</keystore>
            <password>KEYSTORE_PASSWORD_HERE</password>
            <keyPassword>PRIVATE_KEY_PASSWORD_HERE</keyPassword>
        </connector>
                </connectors>
            </configuration>
    <dependencies>
    <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.11.0</version>
    </dependency>
    </dependencies>
        </plugin>
    </plugins>

</build>
</project>

安装说明

  1. 下载最新版本的 IDP 从

    http://shibboleth.net/downloads/identity-provider/latest/

  2. 解压压缩文件

  3. cd 进入目录并运行 install.sh 或 install.bat 命令。该脚本将创建一个 Shibboleth IDP 主目录。
  4. 在 Shibboleth IDP 主目录中将 POM 文件另存为 pom.xml。
  5. 确保在 POM 文件中调整 SSL 的参数,以便它们与您的系统设置和
  6. 通过输入以下命令从 Shibboleth IDP 主目录启动 Shibboleth IDP:

    mvn jetty:run-war

现在您可以开始配置了。可以在Shibboleth wiki上找到更多配置说明。

于 2014-08-21T15:18:23.610 回答