无法在 Spring Boot 应用程序(Tomcat 服务器)中运行 localhost

Posted

技术标签:

【中文标题】无法在 Spring Boot 应用程序(Tomcat 服务器)中运行 localhost【英文标题】:Unable to run localhost in Spring Boot application (Tomcat server) 【发布时间】:2017-12-15 06:31:13 【问题描述】:

我一直在使用以下教程学习 Spring:https://www.youtube.com/playlist?list=PLqq-6Pq4lTTbx8p2oCgcAQGQyqN8XeA1x

我创建了一个 Maven 项目并尝试运行 Spring Boot 应用程序,同时参考这些视频:

https://www.youtube.com/watch?v=E7_a-kB46LU&index=9&list=PLqq-6Pq4lTTbx8p2oCgcAQGQyqN8XeA1x

我尝试在 Tomcat 服务器上运行我的 Spring 应用程序,但 localhost 不工作。 (端口 8080)

我的 pom.xml 看起来像这样:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>io.javabrains.springbootquickstart</groupId>
  <artifactId>course-api-new</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Java Brains Course API</name>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2.RELEASE</version>
  </parent>

  <dependencies>
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
       </dependency>
  </dependencies>

  <properties>
        <java.version>1.8</java.version>
  </properties>

</project>

CourseApiApp.java:

package io.javabrains.springbootstarter;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class CourseApiApp 

    public static void main(String[] args) 
        SpringApplication.run(CourseApiApp.class, args);

    


根据视频本地主机应该在运行应用程序时显示白名单错误,但它根本不运行。

任何帮助将不胜感激,谢谢!

【问题讨论】:

首先。你不跑步是什么意思。您是否看到任何消息或异常。如果是这样放置堆栈跟踪。接下来是在你的pom中,你有没有spring boot maven插件? @pvpkiran 没有运行,因为没有在浏览器上执行任何内容,显示“Localhost 拒绝连接”。是的,STS 中显示了错误,但 Spring 启动时没有任何问题。至于插件,我刚开始学习这个框架,我不知道。如果对您有用,请查看视频链接。 如果您启动应用程序,控制台视图中会显示哪些消息? @MartinLippert 有时,我收到此错误:无法找到或加载主类 io.javabrains.springbootstarter.CourseApiApp 。在以某种方式解决此错误后,控制台不显示任何错误但不显示任何与“Tomcat 开始在端口 8080 上运行”相关的消息都会排序。另请查看我所指的视频。 【参考方案1】:

我建议您从头开始您的项目。要创建一个有效的 spring-boot 项目,您需要一个非常好的基于 Web 的 spring-boot 初始应用程序生成器。

https://start.spring.io/

对于具有嵌入式 tomcat 的 Web 应用程序,您应该使用 web 项目。

使用STS,您可以通过选择new -&gt; spring starter project 创建相同的内容。

将出现一个向导,您可以选择项目信息:

然后在第二步中你的依赖:

生成项目后,您的pom.xml 应如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

您的应用程序应该正常启动,并且 tomcat 侦听 localhost:8080

编辑 启动器只是有一个新设计:

【讨论】:

嗨@Patrick,感谢您的回答。我尝试了你的方法,但 localhost 仍然没有运行。我下载了 Eclipse 而不是 Spring 工具套件,创建了一个新项目,但仍然遇到同样的问题。你能建议点别的吗?谢谢。 @NavneetJoshi 这很奇怪。您能否提供更多信息、例外情况等。 运行程序时,STS 提醒我项目有错误(不显示错误是什么),但 My CourseApiApp.java 运行良好。但它没有显示任何与“Tomcat 开始运行....”相关的消息,并且 localhost:8080 显示“localhost 拒绝连接”。我尝试将端口信息添加到 application.properties 文件,但它会导致另一个以前存在的错误,即。 “无法找到或加载主类 io.javabrains.springbootstarter.CourseApiApp”。如果有帮助,请查看我所指的视频。 如何向您发送控制台的屏幕截图? 你如何选择网络依赖现在这个选项在网络中没有【参考方案2】:

解决方案:为maven的pom.xml添加web starter依赖

无需创建新应用。只需将此 starter 依赖项更改为 starter-web 依赖项即可:

初学者

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

入门网站

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

【讨论】:

【参考方案3】:

STS 可能默认使用 Tomcat 版本 7,如果您碰巧使用版本 8,则需要在 pom.xml 中指定相同的版本

<properties>
    <tomcat.version>8.0.47</tomcat.version>
</properties>

【讨论】:

【参考方案4】:

你应该尝试用 sudo 运行 spring-boot

sudo mvn spring-boot:run

【讨论】:

【参考方案5】:

我也遇到了同样的问题。尝试通过在 STS 中选择 Spring Boot 启动项目来创建 Spring Boot 应用程序。 右键单击 STS->New->Spring Starter Project->Give name 并单击 Next->Choose Web 并在 Web 上打勾并搜索 Dev Tools 并打勾 Dev Tools 然后单击 Finish

现在单击项目并作为 Spring Boot 应用程序运行。

【讨论】:

【参考方案6】:

在 application.properties 中放入 server.port=8080

【讨论】:

【参考方案7】:

我遇到了类似的问题。我也在关注 JavaBrains SpringBoot 示例。这就是我所做的: 我使用 STS 工具创建了一个全新的 Spring Boot 项目,并包含了与您提供的相同的代码,并且成功了!

【讨论】:

【参考方案8】:

你需要告诉springboot你必须在哪里扫描你的引用类

@SpringBootApplication
@ComponentScan(basePackages= "com.testbean.controller", "com.testbean.model", "com.testbean.service") 
public class DemoApplication 

【讨论】:

【参考方案9】:

使用@ComponentScan("io.javabrains") 并提及控制器所在的包。例如。

@SpringBootApplication
@ComponentScan("io.javabrains")
public class CourseApiApp 
    public static void main(String[] args) 
        SpringApplication.run(CourseApiApp.class, args);
    

在 Spring Boot 应用程序中,默认情况下,Spring 会在具有 @SpringBootApplication 注解的同一包中搜索组件。

【讨论】:

【参考方案10】:

按照本教程设置 JavaJDK、Tomcat 和 Maven:https://jeromejaglale.com/doc/spring4_tutorial/installation_macos

下一步移动到终端应用程序:输入cd root_project 并运行sudo mvn spring-boot:run

【讨论】:

以上是关于无法在 Spring Boot 应用程序(Tomcat 服务器)中运行 localhost的主要内容,如果未能解决你的问题,请参考以下文章

springboot 程序发布到tomcat运行

无法在 IntelliJ Idea 中启动 spring-boot 应用程序

Spring Boot 应用程序使用 spring-boot-starter-actuator 给出“无法启动 tomcat”异常

为啥 spring-boot 应用程序无法在 AWS 中运行,但在本地运行良好?

无法启动 Spring Boot 应用程序

无法在 spring-boot 应用程序中从 Consul 读取配置