java - Tomcat 没有关闭

标签 java tomcat

我无法关闭 tomcat。当我执行 ./shutdown.sh 时,我没有看到任何错误,但该进程似乎仍在运行。当我终止进程 (kill -9) 时,进程被终止。在此之后,如果我再次启动并关闭,我会看到同样的问题。我如何优雅地关闭它?为什么会发生这种情况?请帮助我。

devServer:bin dev$ ps -ef|grep tomcat
  501 34933     1   0 11:24PM test    0:02.02 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -Djava.util.logging.config.file=/Users/dev/admin/runtime/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/Users/dev/admin/runtime/endorsed -classpath /Users/dev/admin/runtime/bin/bootstrap.jar:/Users/dev/admin/runtime/bin/tomcat-juli.jar -Dcatalina.base=/Users/dev/admin/runtime -Dcatalina.home=/Users/dev/admin/runtime -Djava.io.tmpdir=/Users/dev/admin/runtime/temp org.apache.catalina.startup.Bootstrap start
  501 34982 33786   0 11:45PM test    0:00.00 grep tomcat
devServer:bin dev$ ./shutdown.sh
Using CATALINA_BASE:   /Users/dev/admin/runtime
Using CATALINA_HOME:   /Users/dev/admin/runtime
Using CATALINA_TMPDIR: /Users/dev/admin/runtime/temp
Using JRE_HOME:        /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Using CLASSPATH:       /Users/dev/admin/runtime/bin/bootstrap.jar:/Users/dev/admin/runtime/bin/tomcat-juli.jar
devServer:bin dev$ ps -ef|grep tomcat
  501 34933     1   0 11:24PM test    0:02.03 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -Djava.util.logging.config.file=/Users/dev/admin/runtime/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/Users/dev/admin/runtime/endorsed -classpath /Users/dev/admin/runtime/bin/bootstrap.jar:/Users/dev/admin/runtime/bin/tomcat-juli.jar -Dcatalina.base=/Users/dev/admin/runtime -Dcatalina.home=/Users/dev/admin/runtime -Djava.io.tmpdir=/Users/dev/admin/runtime/temp org.apache.catalina.startup.Bootstrap start
  501 34992 33786   0 11:45PM test    0:00.00 grep tomcat
devServer:bin dev$ 

另外,我发现我的 catalina.out 太短了。根本没有写入端口号信息。这就是我每次启动时看到的全部内容。

Feb 15, 2014 11:24:23 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java

这是我的日志文件-

devServer:logs dev$ cat catalina.2014-02-15.log 
Feb 15, 2014 11:24:23 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java

似乎有些东西被搞得一团糟。我不明白什么。请指教。 我在 Mac OS 上运行 tomcat 7.0.50。

最佳答案

从日志来看,很明显tomcat根本没有正常启动。我还可以建议一些其他测试

  1. 验证端口是否被 tomcat 服务绑定(bind)。您可以通过在终端上发出命令 netstat -tuplen 并检查端口 8080 是否被 tomcat 实例绑定(bind)来执行此操作。
  2. 检查您是否可以 ping 实例。尝试从本地计算机 ping tomcat 实例。然后尝试 ping 服务器的公共(public) ip 以验证该服务器是否正确响应
  3. 确认您实际上拥有其他服务器使用的完整 tomcat 模板。验证 tomcat 安装文件夹并将其与其他服务器中使用的其他 tomcat 模板进行比较。确保所有文件夹都在那里,所有配置(默认 tomcat 配置)文件都存在。
  4. (只是一种预感)还要验证读/写/执行权限
  5. 删除您的应用程序,关闭 tomcat,清空日志,然后重新启动 tomcat 并重新部署您的应用程序,然后查看日志以查看是否出现错误

第 3 点似乎更有可能是你有一个不完整的 tomcat 实例,所以我建议你制作一个在任何其他服务器中使用的 tomcat 实例的副本,并在这个服务器中使用它,以确保服务器环境实际上是这样的应该是

关于java - Tomcat 没有关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21809065/

相关文章:

javascript - 如何将 javascript 对象传递给 Java Servlet

java - 如何使用instanceof关键字Java

java - Spring Boot 应用程序在外部 TOMCAT 中启动后立即关闭

java - 安装河马 CMS : NullPointerException with essentials webapp

java - Spring 工具套件 - NoClassDefFoundError MappingJackson2XmlHttpMessageConverter

java - 为什么会出现错误 "The absolute uri: [http://tiles.apache.org/tags-tiles] cannot be resolved in either web.xml or the jar files deployed"

java - 如何继承log4j配置xml?

java - 在 fasterxml 的 ObjectMapper 中使用 SimpleDateFormat 是否安全

java - 用Java编写链表的compareTO方法

java - JTable setRowSelectionInterval 对 JButton 没有影响