为什么Tomcat以0.0.0.0:8000开启?

时间:2011-06-01 16:54:06

标签: debugging tomcat ubuntu-10.10 jpda

我知道简短的回答是“你说过了。”但是,当然,我不确定我是如何告诉Tomcat开始使用8000默认调试端口打开的,而是0.0.0.0而不是预期的127.0.0.1。在Ubuntu 10.10启动之后,这里有几个上下文命令。

$ netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN     
tcp6       0      0 127.0.0.1:8080          :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN     
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN     

/usr/share/tomcat6/bin$ grep -C 5 8000 catalina.sh
#
#   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"
#                   command is executed. The default is "dt_socket".
#
#   JPDA_ADDRESS    (Optional) Java runtime options used when the "jpda start"
#                   command is executed. The default is 8000.
#
#   JPDA_SUSPEND    (Optional) Java runtime options used when the "jpda start"
#                   command is executed. Specifies whether JVM should suspend
#                   execution immediately after startup. Default is "n".
#
--
if [ "$1" = "jpda" ] ; then
  if [ -z "$JPDA_TRANSPORT" ]; then
    JPDA_TRANSPORT="dt_socket"
  fi
  if [ -z "$JPDA_ADDRESS" ]; then
    JPDA_ADDRESS="8000"
  fi
  if [ -z "$JPDA_SUSPEND" ]; then
    JPDA_SUSPEND="n"
  fi
  if [ -z "$JPDA_OPTS" ]; then

考虑到这两个输出,我希望发现在某个地方还有一个我在不知不觉中被修改过的配置文件,因为catalina.sh打开8000的唯一方法是它是否传递了{{} 1}}切换,即使这样,它似乎会从jpda开始而不是localhost0.0.0.0清除了tomcat tomfoolery,我很难看到其他地方!

2 个答案:

答案 0 :(得分:1)

时间到了RFC4632,记忆变得生疏了。

0.0.0.0是default route,并且在Tomcat的情况下用于指示端口8000上的任何 IP将被路由到Tomcat(可能用于调试) )。

要重述,Tomcat 0.0.0.0:xxxx会将任何带xxxx端口的请求路由到Tomcat。

答案 1 :(得分:0)

这可能是因为JPDA_ADDRESS是“ 8000”而不是“ localhost:8000” 如果[-z“ $ JPDA_ADDRESS”];然后     JPDA_ADDRESS =“ localhost:8000”  fi