【问题标题】:How to deploy a Spring Boot application on Weblogic 12c (12.1.3)?如何在 Weblogic 12c (12.1.3) 上部署 Spring Boot 应用程序?
【发布时间】:2017-04-07 20:03:26
【问题描述】:

我正在尝试在 Weblogic 12c (12.1.3) 上部署一个简单的 Spring Boot 应用程序,在开发人员环境中它确实可以完美运行。 但是,当需要在战争中重新打包并将其附加到耳朵上时,这似乎无法正确部署。

这是堆栈跟踪:

<Nov 23, 2016 6:15:13 PM CET> <Error> <Munger> <BEA-2156200> <Unable to load descriptor weblogic.utils.classloaders.GenericClassLoader@6964c078 finder: weblogic.utils.classloaders.CodeGenClassFinder@5715556 annotation: my-app-ear@/WEB-INF/lib/tomcat-embed-websocket-8.5.6.jar!/META-INF/web-fragment.xml of module /my-app. The error is weblogic.descriptor.DescriptorException: Unmarshaller failed

非常欢迎任何意见。 提前致谢。

【问题讨论】:

  • 你能发布你的application.java(主类)吗?

标签: java spring spring-boot weblogic


【解决方案1】:

来自 Spring Boot docs

要将 Spring Boot 应用程序部署到 WebLogic,您必须确保 您的 servlet 初始化程序直接实现 WebApplicationInitializer (即使您从已经实现它的基类扩展)。

例如,

改变这个,

public class Application extends SpringBootServletInitializer {  

public class Application extends SpringBootServletInitializer implements WebApplicationInitializer {

注意: SpringBootServletInitializer已经实现了 WebApplicationInitializer,但您需要再做一次。

到目前为止,我不知道为什么。

public abstract class SpringBootServletInitializer implements WebApplicationInitializer {

来自 Spring source 代码,

【讨论】:

    【解决方案2】:

    你需要做两件事:

    1. 在您的 weblogic 12.1.3 实例上,升级您的 JPA api 并添加 hibernate 5 实现

    2. 在您的 Web 应用程序中,确保您拥有哪些依赖项,并且它们不会与 Weblogic 类加载器下已配置的依赖项重叠。

    这里有详细的步骤:

    http://javagoogleappspot.blogspot.be/2018/05/make-your-spring-boot-20-compatible.html

    【讨论】:

      猜你喜欢
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 2018-04-12
      • 2018-12-08
      • 2014-09-10
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      相关资源
      最近更新 更多