idea+springboot 创建简单war项目,在weblogic进行部署测试

参考链接:

springboot应用部署到weblogic 基本步骤_popuui123的博客-CSDN博客_weblogic部署springboot

使用idea创建springboot项目并打成war包发布到weblogic上_MT_xiaoshutong的博客-CSDN博客

背景:

        因为某些原因,需要进行weblogic 搭建、部署、测试。在搭建好weblogic,需要创建一个简单的war包,进行部署测试。完成之后,自己做个简单记录。

版本:

        idea 2021.3.2 (Ultimate Edition)

        springboot     2.4.0

        weblogic 12.2.1

        

步骤

        主要分为三步

        1. 创建springboot 项目,配置pom文件。

<?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>com.peanut2</groupId>
        <artifactId>demo-all</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <groupId>com.peanut2</groupId>
    <artifactId>war-test</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <packaging>war</packaging>

    <name>war-test</name>
    <description>war-test</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-legacy</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- 加exclusions去除打包时的内置tomcat-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>tomcat-embed-el</groupId>
                    <artifactId>org.apache.tomcat.embed</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--增加servlet依赖根据需要选择2.5或者3.0的-->
        <!--<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            &lt;!&ndash; <scope>test</scope>&ndash;&gt;
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            &lt;!&ndash; <scope>provided</scope>&ndash;&gt;
        </dependency>
        &lt;!&ndash; 上下任选其一 &ndash;&gt;
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>8.5.23</version>
            &lt;!&ndash; <scope>provided</scope>&ndash;&gt;
        </dependency>-->

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <attachClasses>true</attachClasses>
                    <archive>
                        <manifestEntries>
                            <Weblogic-Application-Version>${project.version}</Weblogic-Application-Version>
                        </manifestEntries>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <addClasspath>lib/</addClasspath>
                        </manifest>
                    </archive>
                    <!-- <webResources>-->
                    <!-- <resource>-->
                    <!-- <directory>${project.basedir}/src/main/resources/static</directory>-->
                    <!-- </resource>-->
                    <!-- </webResources>-->
                    <warName>${project.artifactId}</warName>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!-- <version>2.1.1.RELEASE</version>-->
                <configuration>
                    <classifier>BOOT</classifier>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

</project>

        2. 创建测试的controller,配置启动类。

        新建的controller类

package com.peanut2.wartest;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author by peanut
 * @Classname IndexController
 * @Description
 * @Version 1.0.0
 * @Date 2022/8/23 8:36
 */
@RestController
@RequestMapping("/index")
public class IndexController {

    @GetMapping(value = "/first")
    public String first() {
        return "Hello World first";
    }
}

        springboot 启动类配置:

package com.peanut2.wartest;

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 WarTestApplication extends SpringBootServletInitializer implements WebApplicationInitializer {

    public static void main(String[] args) {
        SpringApplication.run(WarTestApplication.class, args);
        System.out.println("WarTestApplication 启动成功 \n");
    }


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

        3. 也是最重要的一点,创建weblogic.xml配置文件,并且在打包时,将其打入WEB-INF目录下。

<?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:weblogic-version>12.2.1</wls:weblogic-version>
    <wls:context-root>/</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:package-name>javax.validation.*</wls:package-name>-->
        <!-- </wls:prefer-application-packages>-->
        <!-- <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>-->
        <wls:prefer-application-packages>
            <wls:package-name>org.springframework.*</wls:package-name>
            <wls:package-name>com.fasterxml.jackson.*</wls:package-name>
            <wls:package-name>org.slf4j.*</wls:package-name>
        </wls:prefer-application-packages>
        <wls:show-archived-real-path-enabled>true</wls:show-archived-real-path-enabled>
    </wls:container-descriptor>
</wls:weblogic-web-app>

配置相关的选项

进行编译打包

 

 

 

        4. 进行weblogic部署以及测试。

        将打包之后的war包,上传weblogic运行,进行接口测试。这里就不详细说了。

备注:

        该方式可能不适合全部场景。因为我没有配置web.xml,配置web.xml后一直提示 weblogic.application.ModuleException: java.io.FileNotFoundException: Could not open ServletContext resource [/com.peanut2.wartest.WarTestApplication],只能暂时先去掉了web.xml

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值