首页 > 解决方案 > 在 weblogic 11g 中部署 Spring Boot 应用程序

问题描述

创建了 Spring Boot 应用程序,需要在 weblogic 11g 中部署。部署时,出现一些错误Error String index out of range: 29232

下面附上代码实现,

@SpringBootApplication

@EnableScheduling 公共类 SupportServiceApplication 扩展 SpringBootServletInitializer 实现 WebApplicationInitializer {

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder app) {
    return app.sources(SupportServiceApplication.class);
}

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

}

**Pom.xml:**

<?xml version="1.0" encoding="UTF-8"?>

https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.springframework.boot spring-boot-starter-parent 2.2.0.RELEASE de.basf.ap.agrilog 支持- service 1.0.0 support-service war Agrilog 支持服务,用于自愈 Agrilog 问题

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

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-quartz</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>com.oracle.ojdbc</groupId>
        <artifactId>ojdbc8</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.10</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
                <archive>
                    <manifest>
                        <addDefaultImplementationEntries>false</addDefaultImplementationEntries>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

在 WEB-INF 文件夹下添加weblogic.xml 和 dispatcherServlet-servlet.xml

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://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.3/weblogic-web-app.xsd">
<wls:context-root>/support-service</wls:context-root>
<wls:container-descriptor>
    <wls:prefer-application-packages>
        <wls:package-name>org.springframework.*</wls:package-name>
        <wls:package-name>org.springframework.util.MultiValueMap.*
        </wls:package-name>
        <wls:package-name>org.slf4j.*</wls:package-name>
        <wls:package-name>com.fasterxml.jackson.databind.*</wls:package-name>
        <wls:package-name>com.fasterxml.jackson.*</wls:package-name>
        <wls:package-name>com.fasterxml.jackson.datatype.jsr310.*
        </wls:package-name>
    </wls:prefer-application-packages>
</wls:container-descriptor>

dispatcherServlet-servlet.xml

<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">

标签: javaspring-bootweblogic11g

解决方案


所以刚开始你会遇到一些问题。您正在使用 springboot 2.2.0,这将导致您的动态 Web 模块方面设置为 4.0。您将无法更改此设置。

接下来,您将部署到 WLS11g。您无法部署 .war 文件,因为 WLS12c 甚至不兼容 4.0 的动态 Web 模块。

如果可以,请使用较低版本的 Spring Boot。1.5.4 应该适合你。此外,如果您出于某种原因必须保留当前版本的 Spring Boot,请查看是否可以部署到另一台服务器(TomCat/Jetty)


推荐阅读