2015-11-08 135 views
0

使用spring boot,war包在ubuntu tomcat上。憑證文件打包在資源/憑證/ Gmail,但我的郵件服務引發此錯誤:春季開機:StoredCredential(權限被拒絕)

"/var/lib/tomcat8/webapps/ROOT/WEB-INF/classes/credentials/gmail/StoredCredential (Permission denied)" 

我該如何解決這個問題?

我用apt-get安裝了tomcat8,我確信它創建了一個tomcat8用戶和組......它是否與該文件夾的用戶權限有關?

編輯:

2015-11-08 12:12:33.245 ERROR 12664 --- [cat-startStop-1] org.apache.catalina.core.ContainerBase : A child container failed during start 

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] 
     at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
     at java.util.concurrent.FutureTask.get(FutureTask.java:192) 
     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) 
     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) 
     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
     ... 6 common frames omitted 
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.addServlet(Ljava/lang/String;Ljavax/servlet/Servlet;)Ljavax/servlet/ServletRegistration$Dynamic; 
     at org.springframework.boot.context.embedded.ServletRegistrationBean.onStartup(ServletRegistrationBean.java:189) 
     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.selfInitialize(EmbeddedWebApplicationContext.java:221) 
     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.access$000(EmbeddedWebApplicationContext.java:84) 
     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext$1.onStartup(EmbeddedWebApplicationContext.java:205) 
     at org.springframework.boot.context.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:54) 
     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5170) 
     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
     ... 6 common frames omitted 
+0

如果使用'java -jar myapplication.war'啓動它,會發生什麼情況。這就是spring引導的優點,所以你不需要依賴平臺tomcat8的安裝和配置 – d0x

+0

添加到編輯中:,應用程序不能以app.war開頭。雖然我通常將戰爭解壓縮到ROOT文件夾,所以憑證文件可以被寫入/讀取?糾正我,如果我錯了.. – tery

+0

你削減了堆棧跟蹤的重要部分。 '無法啓動嵌入式Tomcat' ...然後呢?也許是因爲「地址已被使用」? – d0x

回答

1

與WinSCP賦予,導航到憑證文件夾,應用(他人)R寬x權限到文件夾+遞歸。 tomcat8現在將能夠訪問/編輯裏面的憑證文件。