Java Spring启动应用程序Tomcat服务器未运行
我的CourseAppiapp.java文件中有以下代码:Java Spring启动应用程序Tomcat服务器未运行,java,spring,tomcat,Java,Spring,Tomcat,我的CourseAppiapp.java文件中有以下代码: package io.myapp.hellospringboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class CourseApiApp { public s
package io.myapp.hellospringboot;
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);
}
}
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GreetingController {
@RequestMapping("/hello/{name}")
String hello(@PathVariable String name) {
return "Hello, " + name + "!";
}
}
当我按下播放按钮时,会看到以下控制台消息:
main] i.a.hellospringboot.CourseApiApp : Starting CourseApiApp on johndoe-MacBook-Pro.local with PID 22730 (/Users/johndoe/Documents/workspace-sts-3.8.4.RELEASE/com.myapp.hello-spring-boot/target/classes started by john doe in /Users/johndoe/Documents/workspace-sts-3.8.4.RELEASE/com.myapp.hello-spring-boot)
2017-05-02 21:28:29.454 INFO 22730 --- [ main] i.a.hellospringboot.CourseApiApp : No active profile set, falling back to default profiles: default
2017-05-02 21:28:29.552 INFO 22730 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@5427c60c: startup date [Tue May 02 21:28:29 CDT 2017]; root of context hierarchy
2017-05-02 21:28:30.838 INFO 22730 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2017-05-02 21:28:30.917 INFO 22730 --- [ main] i.a.hellospringboot.CourseApiApp : Started CourseApiApp in 2.122 seconds (JVM running for 2.614)
2017-05-02 21:28:30.919 INFO 22730 --- [ Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@5427c60c: startup date [Tue May 02 21:28:29 CDT 2017]; root of context hierarchy
2017-05-02 21:28:30.920 INFO 22730 --- [ Thread-2] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
更新:以下是POM.xml文件:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.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>
根本原因是maven缓存中的jar损坏。删除
~/.m2/repository
解决了这个问题
另一个选项是运行
mvn依赖项:清除本地存储库请删除.m2存储库中的文件
主要从以下位置删除文件:
C:\Users\{UserName}\.m2\repository\org\apache
通过更新POM文件再次构建应用程序,问题得到解决。您必须向文件POM.xml添加依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
org.springframework.boot
SpringBootStarterWeb
由于jar文件损坏,我也面临同样的问题,所以我决定使用最新的spring引导依赖项,并且它运行良好。您只需更新POM文件并重新构建即可
<?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>io.javabrains.springbootquickstart</groupId>
<artifactId>course.api</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springbootapi</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.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>
4.0.0
io.javabrains.springbootquickstart
course.api
1.0-快照
罐子
springbootapi
SpringBoot的演示项目
org.springframework.boot
spring启动程序父级
2.0.3.1发布
UTF-8
UTF-8
1.8
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧起动试验
测试
org.springframework.boot
springbootmaven插件
这几乎把我逼疯了。那么看看上面@PhilWebb的评论:
这要么意味着你的类路径是错误的(没有Tomcat),要么你有一个
正在禁用web支持的属性集
我不得不回到我的应用程序课程,发现我正在这样做:
public static void main(String[] args) {
new SpringApplicationBuilder(OasisEstoreManagerApiApplication.class)
.web(WebApplicationType.NONE)
.run(args);
}
我已将WebApplicationType
设置为NONE
我把它改成了WebApplicationType.SERVLET
,它成功了
这是在我尝试了包括删除.m2
目录在内的一切之后
希望这对某人有所帮助。看起来选择了错误的ApplicationContext
类型。您的日志显示AnnotationConfigApplicationContext
,它应该是AnnotationConfigEmbeddedWebApplicationContext
。这要么意味着您的类路径错误(没有Tomcat),要么您有一个禁用web支持的属性集。mvn dependency:tree的输出是什么?如果使用--debug
参数运行会发生什么情况。我正在使用Spring工具套件编辑器运行所有这些。感谢您提供此代码片段,它可能会提供一些有限的短期帮助。通过说明为什么这是一个很好的问题解决方案来正确解释它的长期价值,并将使它对未来有其他类似问题的读者更有用。请在您的回答中添加一些解释,包括您所做的假设。