再次普及一下启Tomcat报错的问题定位方案

转载请注明出处http://blog.csdn.net/izard999/article/details/40371901


很多时候, 我们把工程部署到服务器之后会用startup.sh启服务器

然而, 一定会有人遇到 服务器起了, 工程访问不了的情况, 这个时候怎么办呢? 抓瞎了

catalina.out等一系列log没有记载,   特别是我的Tomcat上面配置了3个Host的时候, 另外两个可以正常访问, 只有一个无法访问,而且会告诉你404了!

怎么办?  


别着急,  我以前看过startup.bat/startup.sh的代码,   这两个命令会在一个新的窗口去执行catalina命令,  然而windows下,  只要启服务器报错, 窗口会自动关闭, 服务器中运行了startup.sh后, 报错也不会有任何提示.

startup.sh片段代码

EXECUTABLE=catalina.sh

exec "$PRGDIR"/"$EXECUTABLE" start "$@"

执行了catlina.sh 并且带了start为参数

catalina.sh片段

echo "  jpda start        Start Catalina under JPDA debugger"
  echo "  run               Start Catalina in the current window"
  echo "  run -security     Start in the current window with security manager"
  echo "  start             Start Catalina in a separate window"
  echo "  start -security   Start in a separate window with security manager"
  echo "  stop              Stop Catalina, waiting up to 5 seconds for the process to end"
  echo "  stop n            Stop Catalina, waiting up to n seconds for the process to end"
  echo "  stop -force       Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running"
  echo "  stop n -force     Stop Catalina, wait up to n seconds and then use kill -KILL if still running"
  echo "  configtest        Run a basic syntax check on server.xml - check exit code for result"
  echo "  version           What version of tomcat are you running?"

看到了么?  各个参数的说明


想在本窗口运行的话,  只有用catalina run ,  这个run参数 是告诉tomcat.在本窗口执行而不切换窗口, 所以可以看到启服务器的一切信息和log, 包括异常,

可以很快速的定位你的服务器是哪里报错了导致工程启不来

你可能感兴趣的:(java_ee,tomcat)