Spring Boot部署Weblogic:Maven生成的WAR缺失Web.xml与Weblogic.xml
解决Spring Boot WAR包未包含weblogic.xml与web.xml的问题
你遇到的核心问题是自定义的weblogic.xml和web.xml没有被Maven打包进WAR文件,这通常不是Maven配置的问题,而是文件存放位置不对,或者你没明确告诉Maven要包含这些文件。结合你的pom.xml,我来帮你一步步排查和解决:
一、先确认文件的存放位置
Maven的war插件默认只会打包src/main/webapp/WEB-INF目录下的配置文件,所以你需要确保:
web.xml和weblogic.xml必须放在项目的src/main/webapp/WEB-INF文件夹中如果你之前把这些文件放在了其他目录(比如
src/main/resources),Maven不会自动把它们移到WAR的WEB-INF目录下
二、检查Maven War插件的配置
你的pom里已经配置了maven-war-plugin,并且设置了<failOnMissingWebXml>false</failOnMissingWebXml>——这只是告诉Maven即使没有web.xml也不要报错,但不会自动帮你生成或包含自定义的配置文件。如果你的文件位置正确但还是没被打包,可以尝试明确指定需要包含的文件:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.1.0</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <packagingExcludes> WEB-INF/lib/logback*.jar, WEB-INF/lib/*tomcat*.jar </packagingExcludes> <!-- 如果你需要从其他目录引入配置文件,可以用webResources指定 --> <webResources> <resource> <directory>src/main/resources/weblogic</directory> <!-- 你的自定义文件所在目录 --> <targetPath>WEB-INF</targetPath> <!-- 打包到WAR的WEB-INF下 --> <includes> <include>weblogic.xml</include> <include>web.xml</include> </includes> </resource> </webResources> </configuration> </plugin>
三、关于Spring Boot与Weblogic部署的额外提示
- 你的所有Spring Boot starter依赖都设置了
<scope>provided</scope>,这没问题(因为你用了Weblogic共享库),但要确保Weblogic的共享库包含了这些依赖的完整版本,避免运行时出现类缺失问题 - 对于Spring Boot 2.x部署到Weblogic,除了weblogic.xml,你需要创建一个继承
SpringBootServletInitializer的启动类,让Spring Boot适配外部Servlet容器:@SpringBootApplication public class WebappApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(WebappApplication.class); } public static void main(String[] args) { SpringApplication.run(WebappApplication.class, args); } } - 你已经通过
packagingExcludes排除了Tomcat相关jar包,这部分配置是正确的,避免和Weblogic的内置容器冲突
四、验证打包结果
执行mvn clean package后,解压生成的WAR文件,检查WEB-INF目录下是否存在weblogic.xml和web.xml。如果还是没有,可以执行mvn war:exploded查看解压后的目录结构,确认文件是否被正确复制到target/webapp-cds-xxx/WEB-INF下
内容的提问来源于stack exchange,提问作者semiColon
相关产品推荐
相关产品推荐

