我是Java的新手,正在尝试开发Web应用程序。我使用的是Windows 7 32位操作系统。我已经安装了Java 7,并设置了路径和类路径。之后我安装了Tomcat 7。
当我尝试使用URL localhost:8080
打开Tomcat主页时,它无法打开,并自动停止了。
请帮助我。
我是Java的新手,正在尝试开发Web应用程序。我使用的是Windows 7 32位操作系统。我已经安装了Java 7,并设置了路径和类路径。之后我安装了Tomcat 7。
当我尝试使用URL localhost:8080
打开Tomcat主页时,它无法打开,并自动停止了。
请帮助我。
在启动 Tomcat 之前,请确保没有其他应用程序使用端口 8080。如果这不是问题,请粘贴 Tomcat 日志。
如果您想更改 Tomcat 的默认端口,请转到 Tomcat 文件夹并打开 conf
文件夹,在其中您可以看到 server.xml
。在该文件中,您可以看到类似于 <Connector port=
的内容。更改端口值并启动Tomcat即可。
你遇到的问题不是关于端口 8080
,而是关于端口 8005
。端口 8005
是 Tomcat 的关闭端口。
与其试图找出使用了端口 8005
的进程,不如直接编辑 TOMCAT_DIR/conf/server.xml
并将关闭端口更改为 8006
。
<Server port="8006" shutdown="SHUTDOWN">
对于Windows用户,可以在命令提示符中键入netstat -an
以查看正在侦听的端口,这可能会很有用。
1)使用终端(在Linux上),进入apache-tomcat-directory/bin文件夹。
2)键入./catalina.sh start
。
3)要停止Tomcat,请从bin文件夹中键入./catalina.sh stop
。由于某些原因,有时./startup.sh
无法正常工作。
对于基于Unix的系统,您可以通过在终端中输入以下命令来检查特定应用程序使用的端口:
[~/.]$ netstat -tuplen
您将获得当前由其各自的进程ID持有和使用的所有端口列表。
针对Mac用户
第一种尝试:进入活动监视器 -> 搜索Java并终止实例,然后重新启动服务器并尝试。
第二种尝试:检查Tomcat日志文件夹中的任何错误日志。
使用以下命令在终端中检查Tomcat日志:
tail -f {tomcatpath}/logs/catalina.out
第三步:检查节点或其他应用程序是否使用相同的端口。使用以下命令检查哪个应用程序正在侦听特定端口。您将看到第二列中带有pid的应用程序列表。
lsof -i :8080 | grep LISTEN
使用以下命令杀死进程
sudo kill -9 pid
ps -ef | grep java
命令检查),并且您看到它打开了端口8080或您在server.xml中配置的端口(请使用netstat --tcp -na | grep <port number>
命令检查),但是您仍然无法在浏览器中访问它,请检查以下内容:
logs/catalina.out
文件。当服务器完全启动时,您应该看到类似以下内容的信息:INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 38442 ms
SecureRandom
类负责提供随机会话 ID,而在启动过程中可能会导致大的延迟。
请查看更多详细信息和解决方案here。iptables -L -n
):如果您不处于公开环境中,可以尝试完全重置防火墙(使用命令 iptables -F
)。但是,请注意,这将使您失去保护,因此可能存在危险。selinux
(如果您正在使用 Linux)。这些是让 Apache Tomcat 运行起来最容易被忽视和不明显的问题之一。
问题可能是由于内存问题引起的。 java.lang.OutOfMemoryError: Java堆空间
请验证日志文件,查看与硬件(内存)相关的任何问题。