如何在Weblogic 12c(12.1.3)上部署Spring Boot应用程序?

时间:2016-11-23 17:26:35

标签: java spring spring-boot weblogic

我试图在Weblogic 12c(12.1.3)上部署一个简单的Spring Boot应用程序,在开发者环境中它确实可以正常工作。 但是,当需要在战争中重新打包它并将其附加到earand时,这似乎没有正确部署。

这是堆栈跟踪:

<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

任何输入都将非常受欢迎。 提前谢谢。

2 个答案:

答案 0 :(得分:4)

从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代码,

答案 1 :(得分:0)

你需要做两件事:

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

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

  3. 我详细介绍了这里的步骤:

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