CBl*_*lew 3 java spring war kotlin spring-boot
我使用 Intellij IDEA 构建了一个 WAR 存档工件,其中包含一个用 Kotlin 编写的 Spring Boot MVC 应用程序。
以下是相关内容:
$ jar tvf application.war
...
1649 [timestamp] WEB-INF/classes/org/domain/apps/App00HelloMvcKt.class
2087 [timestamp] WEB-INF/classes/org/domain/apps/App00HelloMvc.class
...
Run Code Online (Sandbox Code Playgroud)
App00HelloMvcKt包含fun main(...),并且App00HelloMvc是 Spring Boot 应用程序类。
MANIFEST.MF包含Main-Class条目:
Main-Class: org.domain.apps.App00HelloMvcKt
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,出现了一个问题:
$ java -jar application.war
Error: Could not find or load main class org.domain.apps.App00HelloMvcKt
Caused by: java.lang.ClassNotFoundException: org.domain.apps.App00HelloMvcKt
Run Code Online (Sandbox Code Playgroud)
据我了解,有了这个目录结构,不需要额外的摸索类路径。那为什么不能运行呢?
附加信息:这是一个教学项目。我正在尝试.jsp从带有嵌入式 Tomcat 的 Spring Boot MVC 应用程序提供页面。根据互联网,此设置仅在您将应用程序打包到 WAR 并使用java -jar.
很可能 IntelliJ“Web 应用程序:存档”不完全理解 Spring Boot 语义。尝试使用Maven Spring Boot Plugin打包 WAR ,如章节68.2 Packaging Executable Jar and War Files 中所述:
$ mvn clean package spring-boot:repackage
$ java -jar target/application.war
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1787 次 |
| 最近记录: |