此问题被标记为重复,其他问题1 2 3 4我不认为这是下一个原因的重复。
我是春季新人,所以也许我的问题有点愚蠢。
因此,我尝试使用this guide创建一个多模块springBoot项目 似乎工作正常,但我想更进一步,我想使用传统的部署,即使用Tomcat 9,因此我遵循了the next guide。这是问题出现的时候, Tomcat似乎可以部署生成的WAR文件,但是没有显示SpringBoot标语,并且即使Tomcat显示它找到了Spring WebApplicationInitializers,也无法访问项目URL。 WAR文件似乎格式正确,并且在预期路径内有Application类
我尝试了发现的所有内容,似乎有些人在使用一个Java版本编译项目并尝试将其部署到与我的情况不相同的Java版本的环境中遇到同样的麻烦。 / p>
我可以找到很多有关在Tomcat中将springBoot应用程序部署为WAR的信息,但是对于我所描述的问题却几乎没有。
使用Java 1.8 蚀氧 雄猫9 Maven 3.3.9
所以我的项目结构是这样的:
我的反应堆pom很简单:
<groupId>com.xxxxx.xxxx.mail.ma</groupId>
<artifactId>mail-ma-reactor</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<!--MODULES -->
<modules>
<module>library</module>
<module>application</module>
<module>mail-ma-war</module>
</modules>
</project>
我的库POM正常工作,但以防万一,这是
<groupId>com.xxxxxx.xxxxxx.mail.ma.library</groupId>
<artifactId>mail-ma-library</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.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<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-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
应用pom:
<groupId>com.xxxxxxx.xxxxxx.mail.ma</groupId>
<artifactId>mail-ma-api</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.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.xxxxxx.xxxx.mail.ma.library</groupId>
<artifactId>mail-ma-library</artifactId>
<version>${project.version}</version>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
</dependencies>
引发所有麻烦的是战争pom:
<modelVersion>4.0.0</modelVersion>
<groupId>com.xxxxxx.xxxxxx.mail.ma</groupId>
<artifactId>mail-ma-war</artifactId>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<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>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.xxxxx.xxxxx.mail.ma</groupId>
<artifactId>mail-ma-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.xxxxxx.xxxxxx.mail.ma.Application</mainClass>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
Tomcat仅显示:
INFORMACIÓN: 1 Spring WebApplicationInitializers detected on classpath
jul 02, 2018 9:57:31 AM org.apache.coyote.AbstractProtocol start
INFORMACIÓN: Starting ProtocolHandler ["http-nio-8080"]
jul 02, 2018 9:57:31 AM org.apache.coyote.AbstractProtocol start
INFORMACIÓN: Starting ProtocolHandler ["ajp-nio-8009"]
jul 02, 2018 9:57:31 AM org.apache.catalina.startup.Catalina start
INFORMACIÓN: Server startup in 3515 ms
没什么..没有错误的日志,什么也没有,并且springBoot横幅没有显示,URL不可访问,显示404
我的应用程序类按springboot指南的说明进行注释(位于API项目内部)
@SpringBootApplication public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(final SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
public static void main(final String[] args) {
SpringApplication.run(Application.class, args);
}
请明确一点,出于结构上的原因,我出于变更的原因需要与一个多模块项目一起工作,而且至少现在必须要有WAR文件,要更改它已是我的手。
为了清楚地说明这个问题,我用XXXX更改了项目名称,显然我的项目中没有这样的名称。另外,我几乎尝试了所有我能找到的一切,我只是出于绝望而问,任何帮助将不胜感激。
我知道我的poms可以被清理,如果我使它工作,它们也会被清理(这只是一个多模块结构的POC),因为我一直在尽我所能来做,所以它们有点脏。工作。另外,我制作了一个没有多模块结构的项目,打包为WAR文件,并且部署完美,所以我想这不是Tomcat问题吗?
通过此pom结构生成的WAR文件包含所有依赖关系,并且在API jar中可以找到API jar。
感谢您的帮助,请随时向我询问!