【问题标题】:cannot start cas-overlay-template on windows - missing \etc\cas\thekeystore无法在 Windows 上启动 cas-overlay-template - 缺少 \\etc\\cas\\thekeystore
【发布时间】:2022-10-19 15:25:50
【问题描述】:

我正在尝试使用 6.5 分支在 Windows 11 和 JDK 11 (Eclipse Adoptium 11.0.16.1) 上运行 https://github.com/apereo/cas-overlay-template。我已经使用 gradlew.bat 运行了“createKeystore”和“copyCasConfiguration”gradle 任务,它创建了以下文件:

  1. c:/etc/cas/cas.crt
  2. c:/etc/cas/thekeystore
  3. c:/etc/cas/config/cas.properties
  4. c:/etc/cas/config/log4j2.xml

    当我尝试运行“gradlew.bat run”时,它遇到了以下错误:

    2022-08-22 20:26:06,670 WARN [org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext] - <Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: FaException in thread "main" java.lang.reflect.InvocationTargetException
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
            at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:59)
    Caused by: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server
            at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181)
            at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)
            at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
            at java.base/java.lang.Iterable.forEach(Iterable.java:75)
            at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
            at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
            at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935)
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
            at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732)
            at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:302)
            at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:164)
            at org.apereo.cas.web.CasWebApplication.main(CasWebApplication.java:62)
            ... 8 more
    Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server
            at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:229)
            at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:43)
            at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
            ... 21 more
    Caused by: java.lang.IllegalArgumentException: standardService.connector.startFailed
            at org.apache.catalina.core.StandardService.addConnector(StandardService.java:238)
            at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:282)
            at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:213)
            ... 23 more
    Caused by: org.apache.catalina.LifecycleException: Protocol handler start failed
            at org.apache.catalina.connector.Connector.startInternal(Connector.java:1077)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            at org.apache.catalina.core.StandardService.addConnector(StandardService.java:234)
            ... 25 more
    Caused by: java.lang.IllegalArgumentException: \etc\cas\thekeystore (The system cannot find the path specified)
            at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:107)
            at org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71)
            at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:235)
            at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1227)
            at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1313)
            at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:614)
            at org.apache.catalina.connector.Connector.startInternal(Connector.java:1074)
            ... 27 more
    Caused by: java.io.FileNotFoundException: \etc\cas\thekeystore (The system cannot find the path specified)
            at java.base/java.io.FileInputStream.open0(Native Method)
            at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
            at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
            at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)
            at java.base/sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:86)
            at java.base/sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:184)
            at org.apache.catalina.startup.CatalinaBaseConfigurationSource.getResource(CatalinaBaseConfigurationSource.java:118)
            at org.apache.tomcat.util.net.SSLUtilBase.getStore(SSLUtilBase.java:199)
            at org.apache.tomcat.util.net.SSLHostConfigCertificate.getCertificateKeystore(SSLHostConfigCertificate.java:207)
            at org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:283)
            at org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:247)
            at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:105)
            ... 33 more
    

    我相信这是由于 Gradle 认为它在 Unix 环境而不是 Windows 环境中运行。我对 c:/etc/cas/config/cas.properties 文件所做的任何更改都将被忽略,这让我相信它在别处寻找 cas 文件夹(而不是 c:/etc/cas)。有人有什么想法吗?

【问题讨论】:

    标签: java spring spring-boot cas


    【解决方案1】:

    有人有什么想法吗?

    请阅读: https://apereo.github.io/cas/6.5.x/installation/Troubleshooting-Guide.html#review-logs

    CAS 服务器日志是确定问题根本原因的最佳资源,前提是您已配置适当的日志级别。具体来说,您要确保在日志配置中打开 org.apereo 包的 DEBUG 级别

    您可以考虑将 CAS 内部的配置移动到 application.yml 文件中,而不是将其保留在外部。

    https://apereo.github.io/cas/6.5.x/configuration/Configuration-Server-Management-Standalone.html

    【讨论】:

      【解决方案2】:

      尝试从 tomcat 切换到 jetty 作为嵌入式 servlet 服务器。它似乎有更好的 Windows 支持,并且适当地寻找c:etccas hekeystore

      为此,只需在 gradle.properties 文件中将 -tomcat 替换为 -jettyappServer

      可能有一种方法可以教tomcat看对地方,但我没有找到。 server.ssl.key-store 设置没有任何效果。

      【讨论】:

        【解决方案3】:

        您可以在 spring 配置中更改密钥库位置。您可以在 cas.properties 中或使用命令行标志或 ENV 传递该属性。两个例子:

        示例:绝对窗口路径

        server.ssl.key-store=D:/dev/cas/etc/theKeystore.jks
        

        示例:相对路径

        server.ssl.key-store=file:etc/cas/thekeystore
        

        顺便说一句,您还可以使用 cas.standalone.configuration 目录参数更改 cas.properties 文件的位置。这就是我通常在 Windows 上的本地环境中工作的方式:

        java -jar build/libs/cas.war --cas.standalone.configurationDirectory=etc/cas/config --debug
        

        【讨论】:

          猜你喜欢
          • 2020-04-19
          • 1970-01-01
          • 1970-01-01
          • 2019-02-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多