Spring-boot @ImportResource 在 Weblogic 中被忽略

Spring-boot @ImportResource ignored in Weblogic

我在 weblogic-12c 中部署 spring-boot legacy-war 时遇到了一个奇怪的问题。相同的 war/application 适用于 mvn spring-boot:运行 (embedded-tomcat) / Standalone tomcat war 部署。

主应用程序中配置的@ImportResource 未加载,这导致了一些 bean 注入不一致。在 weblogic12c 中部署是否有任何已知问题需要解决?

注意:我已经在下面尝试过: 1.扩展SpringBootServletInitializer实现WebApplicationInitializer 2.单独的内部配置class

@Configuration @ImportResource({ "classpath*:**/**my-applicationContext.xml"}) @ComponentScan(basePackages = {"com.myapp" })

  1. SLF4J 在 weblogic.xml
  2. 中排除
<wls:prefer-application-packages>
  <wls:package-name>org.slf4j</wls:package-name>
  <wls:package-name>com.google.common.*</wls:package-name>
</wls:prefer-application-packages>

问题出在用于加载 xml-appcontexts 的 Antlr 模式。奇怪的是,相同的表达式在嵌入式 tomcat / 独立 tomcat.

中起作用

解决方法是扩展少数 *

@Configuration

@ImportResource({
"classpath*:mypackage/**my-applicationContext.xml"})
@ComponentScan(basePackages = {"com.myapp" })

调试信息:

AbstractBeanDefinitionReader (Line 216) - spring-beans-4.2.4