Search code examples
spring-bootmavenwarweblogic12c

Error while uploading springboot war file to Weblogic 12.2.1.3 server


I have created a war of springboot project using maven and did some changes to deploy the same on weblogic. While I am uploading the war file to weblogic server its throwing error as shown in screenshot below. I have added configuration details of my project as well. Can you please help me to resolve this.

enter image description here

Spring boot main class


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoWeblogicWarApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoWeblogicWarApplication.class, args);
    }

}

Servlet Initializer class

package com.example.demoWeblogicWar;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.web.WebApplicationInitializer;

public class ServletInitializer extends SpringBootServletInitializer implements WebApplicationInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DemoWeblogicWarApplication.class);
    }

}

weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
        xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app
        http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
 
    <wls:context-root>/myweb</wls:context-root>
    <wls:container-descriptor>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j.*</wls:package-name>
            <wls:package-name>org.springframework.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
 
</wls:weblogic-web-app>

dispatcherServlet-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">
     
</beans>

pom.xml


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demoWeblogicWar</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>demoWeblogicWar</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>


Solution

  • Here is a working example with weblogic 12.2.1.3. It is painful to work with WebLogic. Please follow all steps and post WebLogic console logs in case of any errors.

    • Source Tree

    enter image description here

    • pom.xml

       <?xml version="1.0" encoding="UTF-8"?>
       <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
       <modelVersion>4.0.0</modelVersion>
       <parent>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-parent</artifactId>
           <version>2.4.0</version>
           <relativePath/> <!-- lookup parent from repository -->
       </parent>
       <groupId>com.springboot-wls12c</groupId>
       <artifactId>demo</artifactId>
       <version>0.0.1-SNAPSHOT</version>
       <name>demo</name>
       <description>Demo project for Spring Boot</description>
       <packaging>war</packaging>
      
       <properties>
           <java.version>1.8</java.version>
           <log4j2.version>2.8.2</log4j2.version>
       </properties>
      
       <dependencies>
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-web</artifactId>
               <exclusions>
                   <exclusion>
                       <groupId>org.springframework.boot</groupId>
                       <artifactId>spring-boot-starter-logging</artifactId>
                   </exclusion>
                   <exclusion>
                       <groupId>org.springframework.boot</groupId>
                       <artifactId>spring-boot-starter-tomcat</artifactId>
                   </exclusion>
               </exclusions>
           </dependency>
           <!--Logging-->
           <dependency>
               <groupId>org.slf4j</groupId>
               <artifactId>slf4j-api</artifactId>
               <version>1.7.25</version>
           </dependency>
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-log4j2</artifactId>
           </dependency>
      
           <!-- Add following depedency as provided -->
           <!--START-->
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-tomcat</artifactId>
               <scope>provided</scope>
           </dependency>
           <!--END-->
      
           <!--Add Following dependencies to force it to be part of WAR-->
           <!--START-->
           <dependency>
               <groupId>com.google.guava</groupId>
               <artifactId>guava</artifactId>
               <version>20.0</version>
           </dependency>
           <dependency>
               <groupId>com.fasterxml</groupId>
               <artifactId>classmate</artifactId>
               <version>1.3.4</version>
           </dependency>
           <dependency>
               <groupId>org.hibernate</groupId>
               <artifactId>hibernate-envers</artifactId>
           </dependency>
           <dependency>
               <groupId>javax.validation</groupId>
               <artifactId>validation-api</artifactId>
               <version>2.0.1.Final</version>
           </dependency>
           <dependency>
               <groupId>javax.el</groupId>
               <artifactId>javax.el-api</artifactId>
               <version>3.0.0</version>
           </dependency>
           <dependency>
               <groupId>org.eclipse.persistence</groupId>
               <artifactId>javax.persistence</artifactId>
               <version>2.1.1</version>
           </dependency>
           <!-- Add Log4j2 Dependency -->
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-log4j2</artifactId>
           </dependency>
           <!--END-->
      
           <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-test</artifactId>
               <scope>test</scope>
           </dependency>
       </dependencies>
      
       <build>
           <plugins>
               <plugin>
                   <groupId>org.springframework.boot</groupId>
                   <artifactId>spring-boot-maven-plugin</artifactId>
               </plugin>
           </plugins>
       </build>
      </project>
      
    • DemoApplication.java

        package com.springboot.wls12c;
        
        import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication;
        import org.springframework.boot.builder.SpringApplicationBuilder;
        import 
         org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
        import org.springframework.web.WebApplicationInitializer;
        
        @SpringBootApplication
        public class DemoApplication extends SpringBootServletInitializer
                implements WebApplicationInitializer {
        
            public static void main(final String[] args) {
                SpringApplication.run(DemoApplication.class, args);
            }
        
            @Override
            protected SpringApplicationBuilder configure(final 
            SpringApplicationBuilder application) {
                return application.sources(DemoApplication.class);
            }
        }
    
    • HelloWorldController.java
    
        package com.springboot.wls12c;
        
        import org.springframework.web.bind.annotation.RequestMapping;
        import org.springframework.web.bind.annotation.RequestMethod;
        import org.springframework.web.bind.annotation.RestController;
        
        @RestController
        @RequestMapping("/resource")
        public class HelloWorldController {
        
            @RequestMapping(method = RequestMethod.GET)
            String readResource() {
                return "Hello World!!";
            }
        }
    
    
    • weblogic.xml
    
        <wls:weblogic-web-app
            xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app
                http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
            <wls:container-descriptor>
                <wls:prefer-application-packages>
                    <wls:package-name>org.springframework.*</wls:package-name>
                    <wls:package-name>com.google.*</wls:package-name>
                    <wls:package-name>antlr.*</wls:package-name>
                    <wls:package-name>org.dom4j.*</wls:package-name>
                    <wls:package-name>org.hibernate.annotations.common.*</wls:package-name>
                    <wls:package-name>org.hibernate.*</wls:package-name>
                    <wls:package-name>com.fasterxml.classmate.*</wls:package-name>
                    <wls:package-name>javax.validation.*</wls:package-name>
                    <wls:package-name>javax.el.*</wls:package-name>
                    <wls:package-name>javax.persistence.*</wls:package-name>
                    <wls:package-name>org.slf4j.*</wls:package-name>
                    <wls:package-name>javassist.*</wls:package-name>
                </wls:prefer-application-packages>
                <wls:prefer-application-resources>
                    <wls:resource-name>META-INF/services/javax.persistence.spi.PersistenceProvider</wls:resource-name>
                    <wls:resource-name>META-INF/services/javax.validation.spi.ValidationProvider</wls:resource-name>
                    <wls:resource-name>META-INF/services/javax.annotation.processing.Processor</wls:resource-name>
                </wls:prefer-application-resources>
            </wls:container-descriptor>
        </wls:weblogic-web-app>
    
    
    • Deploy

    enter image description here

    • Test

    enter image description here