java - Spring Boot 服务在 Windows 上只运行几秒钟
问题描述
Windoze 7 Java 1.8 Spring Boot 2.0.2.RELEASE Eclipse 氧气
我制作了一个基本的 Spring Boot 应用程序。Maven 成功创建了一个可执行的 jar。打开 TaskManager->Processes 然后在 PowerShell 中执行 jar
java -jar Foo.jar
我确实看到任务管理器中出现了一个 java.exe,并且确实看到了几行写入控制台。到目前为止,一切都很好。但随后 java.exe 在大约 5 秒后结束并从 TaskManager->Processes 中消失,控制台返回提示符。
现在我认为可执行文件会一直运行,直到被 Ctrl-C 终止。
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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SpringBootExample</groupId>
<artifactId>SpringBootExample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<jdk.version>1.8</jdk.version>
<spring.version>4.3.17.RELEASE</spring.version>
<junit.version>4.12</junit.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<!-- needed to make Jackson serialize new Java 8 date/time stuff correctly -->
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</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-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<exclusions>
<exclusion>
<groupId>org.junit-vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<finalName>SpringBootExample</finalName>
<directory>target</directory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
</resource>
</resources>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<plugins>
<!-- Set JDK Compiler Level -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
</project>
有任何想法吗?我正在尝试从单一的 Spring webapps 转移到 Spring Boot 和微服务。
TIA,
仍在学习的史蒂夫
更新从我的 Application.java 中删除它
Properties p = new Properties();
p.setProperty( "logging.level.org.springframework", "DEBUG");
app.setDefaultProperties(p);
只离开
@RestController
@SpringBootApplication
public class Application {
private static final DateTimeFormatter DATE_TIME_PATTERN_WITH_T_Z = DateTimeFormatter.ISO_INSTANT; // yyyy-MM-dd'T'HH:mm:ssZ
java.time.Instant noww; // implicitly UTC
String str_noww;
@RequestMapping(value={"/","/index"}, method = RequestMethod.GET)
public ResponseEntity<Object> indexHandler( HttpServletRequest request) {
String retStr = request.getRemoteAddr() + " pinged at " + DATE_TIME_PATTERN_WITH_T_Z.format( Instant.now());
return new ResponseEntity<>( retStr, HttpStatus.OK );
}
public static void main(String[] args) {
System.out.println("...starting SpringBootExample microservice...");
SpringApplication.run( Application.class, args);
// startup customizations go here
}
}
解决了
could not find key 'context.listener.classes' in any property source
所以现在执行 jar 确实会打印我的“...开始...”语句,但稍后仍会终止。唔。
解决方案
推荐阅读
- mysql - 在 SQL 语句中的两个表中减去列的错误输出
- r - 获取数据帧子集的总数
- user-interface - 如何让 GtkLayout 滚动?
- reactjs - 带有 redux-toolkit 的 Redux-saga 返回空对象并安慰响应显示 promise{
} - android - 在 Android 中写入文件(新范围存储)
- javascript - 滑动滑块消失类
- python - 进一步优化素数生成器
- facebook - 将 Facebook 评论插件与审核应用程序连接
- python - 将该月最后一个日期的值重复到该月的所有先前日期
- c++ - 插入 std::map 时强制初始化为 0