2015-11-08 105 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现在将能够访问/编辑里面的凭证文件。