我正在尝试一个简单的弹簧启动应用程序,它总是自动关闭
:: Spring Boot :: (v1.4.1.RELEASE)
2016-10-23 13:05:21.681 INFO 16532 --- [ main] com.example.RestBootApplication : No active profile set, falling back to default profiles: default
2016-10-23 13:05:21.766 INFO 16532 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@6e20b53a: startup date [Sun Oct 23 13:05:21 EDT 2016]; root of context hierarchy
2016-10-23 13:05:23.682 INFO 16532 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2016-10-23 13:05:23.704 INFO 16532 --- [ main] com.example.RestBootApplication : Started RestBootApplication in 2.632 seconds (JVM running for 5.168)
2016-10-23 13:05:23.705 INFO 16532 --- [ Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@6e20b53a: startup date [Sun Oct 23 13:05:21 EDT 2016]; root of context hierarchy
2016-10-23 13:05:23.708 INFO 16532 --- [ Thread-2] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
的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>rest-boot</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.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</artifactId>
</dependency>
<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>
主类
@SpringBootApplication
public class RestBootApplication {
public static void main(String[] args) {
SpringApplication.run(RestBootApplication.class, args);
}
}
控制器
@Controller
public class HelloController {
@RequestMapping("/hello")
String helloWorld(){
return "helloWorld";
}
}
尝试在spring工具套件中运行。它总是在开始后停止。我甚至添加了#34; spring-boot-starter-web&#34;在查看了一些stackoverflow问题后,仍然面临着这个问题。
请有人指出这个问题。
答案 0 :(得分:13)
这发生在我身上,结果证明是一个损坏的maven apache存储库。
要修复它,我删除了apache repo - 在我的Mac上,它位于/Users/myname/.m2/repository/org/apache。
在电脑上它应该是c:\ users \ myname.m2 \ repository \ org \ apache。
然后我运行了Maven - 更新项目,然后我运行了我的课程并修复了它。
答案 1 :(得分:8)
就我而言,只需将以下内容添加到pom文件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
答案 2 :(得分:1)
我的建议是删除此依赖
[+-]\d{2}.\d{2}
您也可以尝试添加此tomcat依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
答案 3 :(得分:1)
您的问题的解决方案
regexp = /\b[[:alpha:]]+\b/
p "this is a number 1234".scan(regexp)
# => ["this", "is", "a", "number"]
是一种固执的依赖关系,它会自动提取您的其他依赖关系。请检查它是否已在您的Maven依赖项中提取嵌入式Tomcat,如下所示。spring-boot-starter-web
并以server.port=9081
为目标运行maven目标
如果这些选项无法锻炼,请尝试使用此方法posted。 答案 4 :(得分:1)
我遇到了同样的问题,我有解决方法:
====&GT;哈利路亚,它只是通过魔法工作!
答案 5 :(得分:1)
首先检查端口8080是否可用或正在被其他进程使用。
如果此端口不可用,请尝试在位于&#34;资源&#34;中的server.port=someAvailablePortNumber
文件中添加application.properties
。夹。
我也遇到了同样的问题。尝试了pom.xml文件中建议的很多更改,并尝试了多个与maven相关的建议(例如:删除文件夹,更新项目等),但没有任何对我有用。在我的情况下,端口8080不可用,因此应用程序无法使用默认端口(即:8080)启动tomcat,导致它立即关闭。
更改端口号有助于启动tomcat并开始工作。希望它有所帮助:)
答案 6 :(得分:1)
检查您得到的退出代码。
如果得到“退出代码为1的处理完成” ,则表示正在引发异常。因此,您可以在SpringApplication.run()
语句周围放置try catch块并打印出堆栈跟踪。
public static void main(String[] args) {
try {
SpringApplication.run(MyApplication.class, args);
} catch (Exception e) {
e.printStackTrace();
}
}
的talen示例
答案 7 :(得分:0)
我刚刚接受了你的代码并从头开始了一个Spring-Boot应用程序。在我的机器上,当我运行
时,代码会按预期启动mvn spring-boot:run
为了确保,我们有相同的代码,我将我的解决方案上传到Github,请参阅https://github.com/michaellihs/stackoverflow-40205600
只是想知道它为什么不适合你:运行另一个正在侦听端口8080的Tomcat实例 - 这将立即停止你的应用程序(但通常显示不同的日志/错误消息)。
答案 8 :(得分:0)
在我的情况下,我还必须清除完整的.m2目录并运行clean install才能使其正常工作。不确定什么是冲突的。
答案 9 :(得分:0)
对我来说,嵌入式tomcat已损坏。我做了一个mvn构建,并在下面的行中找到了警告。
[警告]错误读取/home/syam/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/8.5.23/tomcat-embed-core-8.5.23.jar; LOC标题无效(签名错误)
所以删除了tomcat的embed目录并做了一个maven clean,事情就开始了。
答案 10 :(得分:0)
我在application.properties下将端口从8080更改为8083,该资源位于resources文件夹下。 server.port = 8083并且有效。
答案 11 :(得分:0)
为后代添加此内容。
对于这些问题,运行mvn help:effective-pom
并查看已获取的版本是非常有利的。通常有一个父模块覆盖spring-boot期望可用的模块/版本。
答案 12 :(得分:0)
我有同样的问题,我有解决方法:
我将pom.xml
中的版本从1.4.2.RELEASE
更改为1.4.1.RELEASE
答案 13 :(得分:-1)
我删除了maven依赖项文件夹,它对我有用