Search code examples
javaspringspring-bootweblogic

How to deploy a Spring Boot application on Weblogic 12c (12.1.3)?


I'm trying to deploy a simple Spring Boot application on Weblogic 12c (12.1.3), in a developer environment it does work perfectly. However when need to repackage it in a war and to attach it to an earand this does not seem to deploy correctly.

This is the stacktrace:

<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

Any input will be very welcome. Thanks in advance.


Solution

  • From Spring Boot docs,

    To deploy a Spring Boot application to WebLogic you must ensure that your servlet initializer directly implements WebApplicationInitializer (even if you extend from a base class that already implements it).

    For Example,

    Change this,

    public class Application extends SpringBootServletInitializer {  
    

    to

    public class Application extends SpringBootServletInitializer implements WebApplicationInitializer {
    

    NOTE: SpringBootServletInitializer already implements WebApplicationInitializer, but you need to do it again.

    As of now,I don't know Why.

    public abstract class SpringBootServletInitializer implements WebApplicationInitializer {
    

    From Spring source code,