在谷歌计算引擎Linux vm上启动tomcat

时间:2017-10-09 19:29:44

标签: java linux tomcat google-cloud-platform google-compute-engine

我在google compute engine vm中创建了一个f1-micro实例,并使用以下命令安装了java和tomcat8

sudo apt-get update
sudo apt-get install default-jdk
sudo apt-get install tomcat8

安装tomcat后,我可以通过curl http://localhost:8080和vm的外部IP:8080访问它。此外,如果我修改默认的/var/lib/tomcat8/webapps/ROOT.index.html,它会立即反映。

但是如果我只是停止tomcat并重新开始(没有任何其他更改)它永远不会启动。我在catalina.out中也没有看到任何错误

再次,如果我使用sudo netstat -lnp | grep 8080检查tomcat是否正在运行,我会收到一个条目:

tcp6       0      0 :::8080                 :::*                    LISTEN      8749/java    

在第一次运行日志中,我可以看到类似

的内容
INFO: Deploying web application directory /var/lib/tomcat7/webapps/ROOT
.......
INFO: Deployment of web application directory /var/lib/tomcat7/webapps/ROOT has finished in 1,574 ms

但重启后我才看到

INFO: Deploying web application directory /var/lib/tomcat7/webapps/ROOT

没有部署成功日志

2 个答案:

答案 0 :(得分:1)

启动时间的主要原因是它没有在熵池中找到足够的随机性。

要解决此问题,请转到JDK/security文件夹并编辑java.security

就我而言,它位于:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security

更改

securerandom.source=file:/dev/random

securerandom.source=file:/dev/./urandom

答案 1 :(得分:0)

Apache Tomcat附带了一个简单的ROOT webapp,它只不过是一个预编译的索引JSP页面。此索引页面已预编译为JAR文件。 默认情况下,根文件夹附带index.jsp文件而不是index.html。 如果你更改了它,请确保更新tomcat的web配置文件,以便从jar文件中编译它。

按照更新index.jsp文件的步骤: 更改index.jsp页面内容的最简单方法是从ROOT webapp中删除此index_jsp servlet。删除index_jsp servlet并重新启动Tomcat后,Tomcat将在ROOT目录中看到index.jsp文件,并将其动态编译为类文件。您现在可以编辑ROOT / index.jsp文件,并通过重新加载http://localhost:8080/页面使这些更改立即生效。

要删除index_jsp servlet,请编辑ROOT Web应用程序的配置文件$ CATALINA_HOME / webapps / ROOT / WEB-INF / web.xml。注释掉servlet和servlet映射的定义,以便文件的这一部分看起来像这样(红色变化):

Void