[英]Tomcat War Deployment Error with Logback in Spring Boot
我已經使用 Spring Boot 設置了 logback。 當我使用“mvn package”時,它會在 logback-spring.xml 中指定的指定位置創建日志文件但是當我將戰爭部署到 Tomcat 管理器時,我在 tomcat 日志文件中收到以下錯誤。
02-Jan-2023 19:36:45.008 INFO [http-nio-8080-exec-100] org.apache.catalina.core.ApplicationContext.log HTMLManager: start: Starting web application '/springapp'
02-Jan-2023 19:36:47.131 SEVERE [http-nio-8080-exec-100] org.apache.catalina.core.ApplicationContext.log HTMLManager: Error starting [/springapp]
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/springapp]]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
...
...
...
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE-ROLLING] - openFile(springapp.log,true) call failed. java.io.FileNotFoundException: springapp.log (Permission denied)
at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:344)
...
...
...
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5211)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 35 more
Caused by: java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE-ROLLING] - openFile(springapp.log,true) call failed. java.io.FileNotFoundException: springapp.log (Permission denied)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:179)
at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:80)
at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:132)
at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:329)
... 56 more
02-Jan-2023 19:36:47.131 INFO [http-nio-8080-exec-100] org.apache.catalina.core.ApplicationContext.log HTMLManager: list: Listing contexts for virtual host 'localhost
Tomcat 安裝在 /opt/tomcat/apache-tomcat-version/ 我的日志文件目的地是 /opt/tomcat/applogs/ 具有權限
drwxr-xr-x 9 tomcat tomcat 4096 Dec 8 14:02 apache-tomcat-9.0.70
drwxrwxrwx 2 tomcat tomcat 4096 Jan 2 19:35 applogs
我嘗試將 user:groups 更改為 {whoami}:{whoami}、root:root 等,但 tomcat 經理不會啟動戰爭部署
FAIL - Application at context path [/springapp] could not be started
FAIL - Encountered exception [org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/springapp]]]
我知道已經創建的日志來自 spring 引導,與 tomcat 無關,而且我也知道 tomcat 出於安全目的需要專門的用戶,但此時我不知道該怎么做。
您指定的日志目錄權限不足,應用沒有寫入權限。
你可以使用chmod 777 dir
給那個目錄完全訪問權限,或者在配置文件中指定一個有訪問權限的目錄
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.