无法在 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
初始应用程序生成器。
对于具有嵌入式 tomcat 的 Web 应用程序,您应该使用 web
项目。
使用STS
,您可以通过选择new -> 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的主要内容,如果未能解决你的问题,请参考以下文章
无法在 IntelliJ Idea 中启动 spring-boot 应用程序
Spring Boot 应用程序使用 spring-boot-starter-actuator 给出“无法启动 tomcat”异常