繁体   English   中英

Tomcat 启动但主页无法打开,网址为 http://localhost:8080

[英]Tomcat starts but home page cannot open with url http://localhost:8080

我是 Java 新手,正在尝试开发 Web 应用程序。 我有 Windows 7 32 位。 我已经安装了 Java 7 并设置了路径和类路径。 之后我安装了Tomcat 7。

当我尝试使用 URL localhost:8080打开 tomcat 主页时,它不会打开并且 Tomcat 会自动停止。

请帮我。

在启动 tomcat 之前确保没有其他应用程序使用端口 8080。 如果这不是问题,请粘贴 tomcat 日志。

如果你想改变tomcat的默认端口,进入tomcat文件夹,打开conf文件夹,在里面可以看到server.xml 在该文件中,您可以看到类似<Connector port= 更改端口值并启动tomcat。

如果是通过eclipse启动tomcat,也可以通过不同的方式解决。

方法一:

  1. 右键单击服务器-> 属性
  2. 单击切换位置并应用。

在此处输入图片说明

在此处输入图片说明 方法二:

  1. 在 eclipse 中双击服务器。
  2. 将服务器位置更改为使用 tomcat 安装(控制 tomcat 安装)。

您的问题不在于端口8080 ,而在于端口8005 8005端口是 Tomcat 的关闭端口。

与其试图找出使用端口8005 ,不如编辑TOMCAT_DIR/conf/server.xml并将关闭端口更改为8006可能更容易

<Server port="8006" shutdown="SHUTDOWN">

对于基于 *Unix 的系统,您可以通过在终端中发出以下命令来检查特定应用程序使用的端口

[~/.]$ netstat -tuplen

您将获得当前由各自进程 ID 持有和使用的所有端口的列表

1) 使用终端(在 Linux 上),转到 apache-tomcat-directory/bin 文件夹。

2) ./catalina.sh start

3) 要停止 Tomcat, ./catalina.sh stopbin文件夹中键入./catalina.sh stop 由于某种原因./startup.sh有时不起作用。

对于 Windows 用户,在命令提示符下键入netstat -an以查看正在侦听的端口,这可能会派上用场。

对于 Mac 用户

首先尝试:转到活动监视器-> 搜索 java 并终止实例,然后重新启动服务器并尝试。

第二次尝试:检查 tomcat 日志文件夹下的日志文件是否有任何错误。

使用以下命令在终端中检查 tomcat 日志

tail -f {tomcatpath}/logs/catalina.out

第三次尝试:检查节点或其他应用程序是否使用相同的端口。 使用以下命令检查哪个应用程序侦听特定端口。 您将在第二列中看到带有 pid 的应用程序列表。

lsof -i :8080 | grep LISTEN

使用以下命令终止进程

sudo kill -9 pid

我的问题已经解决。我得到的日志如下。

严重:StandardServer.await:create[localhost:8005]:java.net.BindException:无法分配请求的地址:JVM_Bind

当我尝试使用 URL 打开 tomcat 主页时,我的 tomcat 服务器自动停止。

所以我只是在 windows->System32->drivers->etc->host 文件中做了一些更改。 仅保留 127.0.0.1 localhost 并删除所有其他内容。 你的问题将得到解决。 谢谢大家的帮助:D

如果您启动了 tomcat(在 linux 中使用ps -ef | grep java检查)并且您看到它打开了端口 8080 或您在 server.xml 中配置的端口(使用netstat --tcp -na | grep <port number> ) 但您仍然无法在浏览器中访问它,请检查以下内容:

  1. 它可能会启动,但会延迟 3-5 分钟。 检查logs/catalina.out 当服务器完全启动时,您应该会看到类似的内容。
    INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 38442 ms
    如果您没有此 INFO 行,您的服务器启动还没有完成。 出现此问题的原因可能是SecureRandom类负责提供随机会话 ID,这可能会导致启动过程中出现很大的延迟。 此处查看更多详细信息和解决方案。
  2. 检查您的防火墙(在 linux iptables -L -n ):如果您没有进入暴露环境,您可以尝试完全重置您的防火墙iptables -F 但是,请注意,这会使您没有保护,因此可能很危险。
  3. 检查您的selinux (如果您使用的是 linux)。

这些是在启动和运行 Apache Tomcat 过程中最容易被遗忘且不明显的一些问题。

我正在Eclipse Java EE IDE for Web Developers. Version: Oxygen.1a Release (4.7.1a) in Windows 8.1 x64使用Eclipse Java EE IDE for Web Developers. Version: Oxygen.1a Release (4.7.1a) in Windows 8.1 x64 Eclipse Java EE IDE for Web Developers. Version: Oxygen.1a Release (4.7.1a) in Windows 8.1 x64Apache Tomcat 8.5.24 (用于测试目的)。

我的 Tomcat 服务器的端口名称和编号是:

Tomcat admin port   :   8005
HTTP/1.1            :   8081 (my Tomcat Listening Port Number)
AJP/1.3             :   8009

人们,对于那些Tomcat运行良好的人, sometimes在通过按下下面显示的图像按钮明确stopping tomcat serversometimes突然或可能是其他原因。

通过 Eclipse 标准工具栏按钮显式停止 Tomcat 服务器

Either他们一直无法start/restart tomcat,并出现以下错误:

服务器 本地主机上的 Tomcat vX.Y 服务器无法启动。

or有时Tomcat Server is started但不是在 Web 浏览器中显示Tomcat Homepage ,而是抛出客户端异常HTTP Status 404 – Not Found. 在首选的网络浏览器中。

可能有很多原因,即Host name定义错误、Eclipse 中定义的 Tomcat Server Locations错误、项目JDK/JRE版本与Tomcat JRE dependent version版本不匹配、maven 项目版本不匹配由于maven.compiler.sourcemaven.compiler.target版本未在属性标签下定义,项目方面动态 Web 模块的版本与 2.5/3.0 不匹配,有时 Tomcat 服务器在 Windows 服务级别上运行,之前停止的 Tomcat 端口号仍在侦听,并且processing pid在 Tomcat 定义的时间跨度Timeouts Stop (in seconds): 15(by default)中未被Timeouts Stop (in seconds): 15(by default) in eclipse and pid still running, failed to start in defined Start (in seconds): XX等。

在这里我将给出解决方案,如何检查并杀死正在运行的现有Tomcat端口号的processing pid (注意,您必须注意后遗症)。

在 Windows 中,打开命令提示符,然后按照步骤操作(我的 tomcat HTTP 端口是 8081):

netstat -ano | findstr :8081
TCP    0.0.0.0:8081           0.0.0.0:0              LISTENING       2284
TCP    [::]:8081              [::]:0                 LISTENING       2284

如果有任何监听,上面的命令将在行的最后列出端口监听的详细信息以及processing pid (这里的 pid 是 2284)。

现在杀死正在运行的pid,如:

taskkill /PID 2284 /F
SUCCESS: The process with PID 2284 has been terminated.

还说明了上述两个步骤,如下所示:

杀死正在运行的PID

现在,解决上述原因后,启动Tomcat Server

我遇到过同样的问题。 我的 tomcat 已启动,但未找到 HTTP 404 页面。但是,在我的情况下,我安装了 tomcat 的树实例。 每个实例都包含 conf、temp、work、webapps 和 logs 文件夹。 除非我忘了,把全局的web.xml 复制到每个tomcat 的conf 文件夹下。

    e.g: /opt/tomcat/mytomcatInstance/conf/web.xml 

web.xml 部署描述符文件描述了如何在 servlet 容器中部署 Web 应用程序。

因此,即使我的 tomcat 已启动,我的网络应用程序也无法正确部署。

由于内存问题,可能会发生问题。 java.lang.OutOfMemoryError:Java 堆空间

请验证日志文件,任何与硬件(内存)相关的问题。

在 TomcatDirectory/logs/catalina.out 中查找日志。 如果日志太长,请删除 catalina.out 文件并重新运行应用程序。

如果您使用 eclipse 启动服务器,请检查正在使用的服务器位置和部署路径:

tomcat 服务器位置和部署路径

在我的情况下,将其更改为Tomcat installation而不是workspace metadata对我有用。

在我的情况下,tomcat 运行的端口是在 application.properties 文件中为 8000 定义的,而不是 8080。在我的情况下,它看起来与此处描述的问题相同。 只是留在这里以防万一有人有类似的设置和问题! :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM