【发布时间】:2017-04-25 08:39:41
【问题描述】:
我正在使用 Intellij(版本 14.0.3)中的 Tomcat(Maven 项目)开发一个非常简单的 Java Web 应用程序。
当我编译和部署包时(命令:“mvn clean package: using Intellij)然后运行程序
我收到一个弹出窗口:
Cannot open url. Please check this url is correct.
网址是“http://localhost:8080/TimeDisplay/ShowTime.html”。
不用说,当我尝试直接通过浏览器访问此 URL 时,我会进入我创建的页面。
这里是项目运行配置的相关字段:
应用服务器:Tomcat 9.0.0.M3
打开浏览器:启动后使用 Firefox 作为选择的浏览器进行检查。该链接与我在错误中获得的链接相同。
在“更新”操作中:重新启动服务器
帧停用:什么都不做
Tomcat 服务器设置:
- HTTP 端口:8080
- JMX 端口:1099
在部署选项卡下,我添加了“TimeDisplay:war exploded”(TimeDisplay 是我的项目的名称)。
我的pom.xml如下:
<project xmlns="removed link due to low stackoverflow reputation" xmlns:xsi="removed link due to low stackoverflow reputation"
xsi:schemaLocation="removed link due to low stackoverflow reputation">
<modelVersion>4.0.0</modelVersion>
<groupId>com.amin</groupId>
<artifactId>TimeDisplay</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>TimeDisplay Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.24.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>2.24.1</version>
</dependency>
</dependencies>
<build>
<finalName>TimeDisplay</finalName>
</build>
</project>
我还附上了我的项目结构的屏幕截图。
值得注意的是,我一开始可以通过 Intellij 运行程序,但在我没有做任何更改的情况下突然出现了这个问题。目前我正在打包我的代码并在Tomcat中手动部署它,这太可怕了!
【问题讨论】:
-
在 IntelliJ 中开始调试应用时,Tomcat 服务是否正在运行?
-
@LukeWoodward 是的。运行项目还会启动(或重新启动)Tomcat 服务。一旦我得到提到的弹出窗口,我就去检查链接的可用性,发现它实际上已经启动了。
-
抱歉,我想问的是“Apache Tomcat”服务是否在“服务”对话框中运行(看起来您使用的是 Windows,如果我错了,请纠正我)。需要停止 Windows 服务才能在 IntelliJ 中使用 Tomcat 调试 Web 应用程序才能工作:IntelliJ 启动自己的 Tomcat 副本,但如果 Windows 服务正在运行,因此使用端口 8080,IntelliJ 的 Tomcat 副本将无法运行使用该端口。
-
@LukeWoodward 正如你所说,我正在使用 Windows,但是当这个问题发生时,Tomcat 并没有独立运行,只能通过 IntelliJ。当 Tomcat 自行运行时,我根本无法通过 IntelliJ 运行我的程序,因为正如您所说,它们将是端口冲突。我会得到一些端口侦听器异常。
-
我唯一的其他建议是,如果您的应用正在执行 HTTP -> HTTPS 重定向(例如,由于 web.xml 中的
transport-guarantee设置为CONFIDENTIAL),那么您可能会看到此错误.
标签: java maven tomcat intellij-idea