在切换到Java11并向充当REST API的Spring Boot应用程序添加模块之后,我遇到了一个问题。我没有得到任何错误时运行的应用程序,它关闭后,初始化退出代码0。Tomcat embedded服务器和dispatch服务器都不会启动,这将阻止应用程序关闭并侦听传入的请求。
null
null
我已经试着搜索了这一点,但不幸的是,术语module早在Java9之前就存在了,但它的含义不同,因此很难找到任何答案。我很抱歉,如果这个问题已经在某处发布了。
即使是最基本的例子我也不能使它工作
application.java
@SpringBootApplication()
public class SchoolsApplication {
public static void main(String[] args) {
SpringApplication.run(SchoolsApplication.class, args);
}
}
@RestController
public class HelloController {
@GetMapping("hello")
public String hello(){
return "hello";
}
}
module controllers {
requires spring.boot;
requires spring.boot.autoconfigure;
requires spring.context;
requires spring.beans;
requires spring.web;
requires com.fasterxml.jackson.databind;
opens package.controllers to spring.core;
}
null
null
显式添加时编辑需要org.apache.tomcat.embedb.core;
服务器启动并崩溃,出现错误
org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory]: Factory method 'tomcatServletWebServerFactory' threw exception
...
java.util.ServiceConfigurationError: org.apache.juli.logging.Log: module org.apache.tomcat.embed.core does not declare `uses`
Tomcat版本为9.0.38
我设法将错误定位到Tomcat嵌入式服务器。spring-web-starter
使用的版本是tomcat-embed-core:9.0.38
。该问题已在tomcat-embed-core:9.0.39
中修复,使用
open module org.apache.tomcat.embed.core {
...
uses org.apache.juli.logging.Log;
}
所以我通过maven依赖项管理解决了这个问题。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>9.0.39</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>9.0.39</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
问题内容: 因此,截至昨天早上,我对OSGi到底是什么一无所知。 OSGi 只是一个流行语,我不断看到它反复出现,因此我终于拨出一些时间来仔细研究它。 实际上,它看起来很酷,因此,我想(从记录开始)说我在任何方面都不是反OSGi的,这也不是“打击OSGi”的问题。 归根结底,似乎OSGi实质上已经解决了Java Modularity上的JSR 277 ,该文件认识到文件规范存在缺陷,在某些特殊情况
我的应用程序有Spring boot 1.3.2,我正在尝试将Spring MVC与Spring Security结合使用。 我有管理小组http://localhost:8080/admin和我的普通用户页面内容http://localhost:8080/ 如果你试图打开一个管理面板(http://localhost:8080/admin)你必须登录,如果你是常见的只需输入http://loca
SOFABoot 会根据 Require-Module 计算模块依赖树,例如以下依赖树表示模块B 和模块C 依赖模块A,模块E 依赖模块D,模块F 依赖模块E: 该依赖树会保证模块A 必定在模块B 和模块C 之前启动,模块D 在模块E 之前启动,模块E 在模块F 之前启动,但是依赖树没有定义模块B 与模块C,模块B、C与模块D、E、F之间的启动顺序,这几个模块之间可以串行启动,也可以并行启动。 S
这是我的项目结构 父级是客户端、控制器、服务和存储库的父项目。 现在我想在controller中添加service的依赖关系,所以在controller pom.xml中添加了相同的内容 添加componentscan注释后 请帮忙
我在理解容器视图控制器的实现方式时遇到了一些麻烦。 我将一个容器拖到主视图控制器中,它会自动创建嵌入式视图控制器,并通过嵌入式segue连接。然后,我可以通过从主视图控制器访问它。 我有点困惑,在飞行中创建和使用这些。即我想用它作为警报视图。我是否只是初始化视图一次,然后在每次显示被触发时更改其内容?我应该调用或只是设置隐藏/动画视图进出? 发音有困难。希望有人会说新语,能理解我。
我的问题是关于测试多模块Spring Boot应用程序。 我有一个多模块spring boot REST应用程序。应用程序的结构如下: 以上就是我的应用程序的结构。 SpringBootMainApplication是主要项目。SpringbootModule是SpringBootMainApplication中的子项目。“SpringBootMainApplication.war”WAR将在WA