我已经在 stackoverflow 上问过这个问题,并且被引导到这里:
我正在为一个大学应用程序开发项目做后端工作,但遇到了很大的困难。我对这些东西不太熟悉。
我被授予访问运行 ubuntu server 14.04 的 gcloud vm 实例的权限,并一直在尝试设置SQLite 同步在 tomcat 8 上。我的团队正在尝试使用将与 MySQL 远程数据库同步的 sqlite DB 构建 Xamarin 应用程序。
最初,我在实例上安装了 LAMP、phpMyAdmin 和 tomcat。我花了很长时间尝试通过 ipv4 端口 8080 访问 tomcat,因为它似乎只在监听 ipv6。在我设法修复该问题并部署 SqliteSync.war 后,我最终遇到了缺少依赖项的问题,特别是 glassfish 及其 maven 依赖项。
因此现在,安装了所谓的依赖项并删除并重新安装 tomcat(因为它拒绝监听任何协议上的任何内容)。我现在无法部署 sqlitesync.war(或 OG 开发人员发送给我的最新版本)。我被告知 tomcat 无法覆盖旧的 .war,需要手动删除旧版本,但它们似乎不存在于我的实例上。错误日志告诉我:
java.io.IOException: java.io.FileNotFoundException: /opt/tomcat/webapps/SqliteSync_307.war (Permission denied)
Caused by: java.io.FileNotFoundException: /opt/tomcat/webapps/SqliteSync_307.war (Permission denied)
18-May-2017 10:05:54.295 SEVERE [http-nio-8080-exec-4] org.apache.catalina.core.ApplicationContext.log HTMLManager: FAIL - Deploy Upload Failed, Exception: java.io.FileNotFoundException: /opt/tomcat/webapps/SqliteSync.war (Permission denied)
我真的很为难,希望得到任何帮助。我是否应该把整个东西烧掉然后重新开始?这只是某种权限问题吗?有没有办法强制部署 .war?