Java web 程序部署成功,但是访问不到 啥原因
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java web 程序部署成功,但是访问不到 啥原因相关的知识,希望对你有一定的参考价值。
可以用localhost访问了,也不知道之前是哪里的原因
首先你确定你的项目是部署在你自己使用的电脑上,部署去访问人家的机子..还有 你的机子是windows么..
你可以试试127.0.0.1,如果这个可以访问的话,可能就是你的Hosts文件对应的名字不同
打开C:\WINDOWS\system32\drivers\etc\hosts文件,看下最下面
最下面的:127.0.0.1 localhost,这两个参数你可以随意改。格式是IP空格域名
你有看下你的hosts文件里面 最下面的配置是怎么样的么
参考资料:http://baike.baidu.com/view/1599588.htm
参考技术A 那么输入127.0.0.1 有用吗? 要么就是你端口输入错误如果输入127.0.0.1可以,那么确认本机是可以正常访问的,现在问题是你访问的地址是什么。外网还是内网? 参考技术B 没理由啊,应该不是localhost的问题 参考技术C 客户端部署为自己的电脑名字才能在localhost访问,请把具体的代码贴出来,要不然不知道你是咋部署的
在 Ubuntu 上部署 Tomcat Web 应用
在 Ubuntu 上部署 Tomcat Web 应用
目录
前言
本篇是我在实验室部署考勤java后端的时候遇到了一些问题,于是重新下载安装tomcat部署了一遍,总结以下操作以及遇到的bug修复。
步骤
1、安装java
在 Ubuntu 上安装 Java 的命令是:
sudo apt-get update
sudo apt-get install default-jdk
2、下载和安装 Tomcat
下载 Tomcat 安装包:
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.22/bin/apache-tomcat-9.0.22.tar.gz
解压缩安装包:
tar -xzvf apache-tomcat-9.0.22.tar.gz
3、启动 Tomcat
在终端中输入以下命令启动 Tomcat:
cd apache-tomcat-9.0.22/bin
sudo sh startup.sh
4访问应用
Tomcat默认启动端口是8080(可以修改,下面讲)在浏览器中输入 http://localhost:8080
访问 Tomcat 主页。如果一切正常,应该能够看到一个 Apache Tomcat 页面。
5、部署 Web 应用程序
为了部署 Web 应用程序,需要将 WAR 文件复制到 Tomcat 的 webapps 目录中,因为配置文件默认读取的目录是webapps(下面讲如何用其他路径)。在终端中使用以下命令进入 webapps 目录:
cd apache-tomcat-9.0.22/webapps/
将 WAR 文件复制到该目录中:
sudo cp /path/to/your-application.war /path/to/tomcat/webapps/
其中path是你自己项目打包的路径
6、重启 Tomcat
在终端中输入以下命令重启 Tomcat:
cd apache-tomcat-9.0.22/bin
sudo sh shutdown.sh
sudo sh startup.sh
到此就可以在浏览器中输入 http://localhost:8080/your-application
访问你的 Web 应用程序。
配置文件
这是我的服务器安装的Tomcat目录:下面有一个conf文件就是专门放配置文件的
server.xml
修改端口
修改port就行,我这里把默认的改成了8888端口。
Tomcat 默认使用 8080 端口启动 Web 服务器,但这并不意味着无法在 Tomcat 上使用不同的端口。你可以更改 Tomcat 的默认端口来使用其他端口,例如你的后端应用程序的端口号。
要更改 Tomcat 的默认端口,请修改 Tomcat 配置文件中的 server.xml
文件。打开该文件并找到以下行:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
如果将 Tomcat 的端口更改为 8888,则 URL 应更改为:
http://localhost:8888/your-application
确保该 URL 中的端口号与本地后端应用程序的端口号相匹配。这样,就可以通过 Tomcat 访问本地后端应用程序来提供 Web 服务。
开启端口
在 Ubuntu 中,可以使用 ufw
( Uncomplicated Firewall ) 命令管理防火墙来打开端口。以下是打开指定端口的步骤:
在终端中输入以下命令:
sudo ufw status
输出应该显示当前防火墙的状态,例如:
Status: inactive
如果输出显示防火墙已启用,则显示当前打开的端口,例如:
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
打开需要的端口
打开指定的端口,例如 8888,可以使用以下命令:
sudo ufw allow 8888/tcp
如果希望设置允许指定 IP 地址访问该端口,则可以使用以下命令:
sudo ufw allow from [IP地址] to any port 8888
重载防火墙规则配置
sudo ufw reload
修改项目配置路径
server.xml 是 Tomcat 的核心配置文件之一。你可以在其中指定 WAR 文件的路径,告诉 Tomcat 如何加载Web应用程序。以下是在 server.xml 中配置 WAR 文件的步骤:
- 打开 server.xml 文件,该文件通常位于 Tomcat 安装目录下的 conf 目录中。
- 在
<Host>
元素内,找到<Context>
元素,该元素指定 Tomcat 加载 Web 应用程序的上下文路径和 WAR 文件的路径。如果<Context>
元素不存在,则可以添加一个新的<Context>
元素。 - 在
<Context>
元素中,设置docBase
属性为你的 WAR 文件的路径。
以下是一个示例 <Context>
元素配置,其中 docBase
属性指向 WAR 文件的路径:
<Context path="/your-webapp" docBase="/path/to/your-webapp.war" />
在这个示例中,配置的上下文路径是 /your-webapp
,WAR 文件在 /path/to/your-webapp.war
路径下。
- 保存 server.xml 文件,并重新启动 Tomcat 以使更改生效。
当 Tomcat 启动时,它会自动加载你指定的 WAR 文件,并将其部署为 Web 应用程序。请注意,如果更改了 server.xml 文件,请谨慎检查文件是否存在语法错误,并备份原始文件,以便在需要时可以还原配置。
报错
404错误
404表示File Not Found, 文件不存在错误。
正确的端口号
出现404错误证明,TOMCAT是启动成功了的。 但是在一台计算机上,可以启动多个端口号不一样的TOMCAT, 所以请确保自己访问的是正确的那个端口号,别自己启动的是8080端口号的TOMCAT,但是访问的地址却用的是80端口(默认),这样肯定会出现404错误的。
环境变量
假设有两个Tomcat A和 B,自己分明运行的是B 下的startup.bat, 但是启动的却是A,为什么会这样呢? 这就是环境变量在作祟了。
在环境变量中有两个属性:分别是CATALINA_HOME和CATALNIA_BASE,如果这个值指向的是A,那么即便运行的是B下的startup.bat, 真正启动的还会是A。
确定Web应用是否成功启动
虽然Tomcat启动成功了,但是对应的Web应用启动失败,依然会导致404错误。
怎么判断Web应用成功与失败呢? 倘若Web引用启动失败,那么就一定会在Tomcat的logs目录下的 localhost.当前日期.log 里留下错误信息。
打开这个文件,检查对应的Web应用是否启动过程中报错了。 也许是web.xml多写了一个标签结束,也许是对应的servlet类找不到。
webapps下的ROOT目录
有的时候,在server.xml 中配置的<context 是以“/"为开始路径的,与此同时,在webapps目录下还存在一个ROOT目录,这个ROOT目录其实也是告诉tomcat,以“/” 为开始路径,那么这样就发生冲突了,Tomcat只能二选一,通常情况下都会选择ROOT目录,那么在server.xml中配置的<context 就无法启动了,导致访问对应的资源提示404错误。
解决办法就是:删除掉ROOT目录,或者把ROOT目录重命名
不能访问WEB-INF目录下的资源
安全角度出发,TOMCAT不允许访问WEB-INF目录下的HTML,JSP文件。 所以如果你的资源文件放在WEB-INF下,也会提示404错误
访问地址后面多加了一个斜杠
如图,本来应该访问
http://127.0.0.1:8080/hello
但是却访问了地址:
http://127.0.0.1:8080/hello/
以上是关于Java web 程序部署成功,但是访问不到 啥原因的主要内容,如果未能解决你的问题,请参考以下文章
javaWeb项目已经通过myeclipse部署到tomcat webapps中,但是项目文件夹中的jsp页面却访问不到?
403 - Forbidden:成功部署 Web 后拒绝访问
web项目部署成功,端口号,路径都正确,项目从来没有从命名,但是访问的时候报错404.求解,到底是为啥。
使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpoin