【问题标题】:Cannot open url. please check this url is correct无法打开网址。请检查此网址是否正确
【发布时间】: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


【解决方案1】:

在外部网络浏览器中不显示网页可能还有更多原因。在我的情况下,问题是 Idea 试图检测应用程序的部署方式。

我的 Web 应用程序使用单点登录,当在没有身份验证的情况下发出请求时,应用程序会将用户重定向到外部站点以登录。但是 IntelliJ Idea 可能正在尝试等待 200 响应并向我的应用程序发送垃圾邮件无数的请求。但是,对于未经身份验证的用户,应用程序的正确响应是 302。而当它没有在某个特定的时间范围内发生时,Idea 会抱怨无法显示页面,甚至不会尝试打开浏览器。

【讨论】:

    【解决方案2】:

    好的,我解决了这个问题。 IntelliJ 14.0.3 中似乎存在错误。我删除了我的运行配置并使用相同的参数再次创建它,它立即开始工作。因此,作为一种解决方法,重新创建配置可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 2016-04-10
      • 2014-11-26
      • 1970-01-01
      相关资源
      最近更新 更多