Java SpringBoot 2.x war部署在websphere 8.5.5.11上失败,出现jar问题

Java SpringBoot 2.x war部署在websphere 8.5.5.11上失败,出现jar问题,java,spring,spring-boot,websphere,byte-buddy,Java,Spring,Spring Boot,Websphere,Byte Buddy,Springboot-2.1.9.RELEASE war部署到websphere8.5.5.11失败 [5/17/20 1:05:31:181 EDT]0000007d ecs W com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl scanJAR无法打开存档WEB-INF/lib提供的/jaxb-api-2.3.1.jar中资源模块-info.class的输入流 java.lang.IllegalArgumentExcept

Springboot-2.1.9.RELEASE war部署到websphere8.5.5.11失败

[5/17/20 1:05:31:181 EDT]0000007d ecs W com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl scanJAR无法打开存档WEB-INF/lib提供的/jaxb-api-2.3.1.jar中资源模块-info.class的输入流 java.lang.IllegalArgumentException 位于org.objectweb.asm.ClassReader。(未知来源)

[5/17/20 1:05:32:185 EDT]0000007d ecs W com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl scanJAR无法打开存档WEB-INF/lib/byte-buddy-1.9.16.jar中资源META-INF/versions/9/module-info.class的输入流 java.lang.IllegalArgumentException 位于org.objectweb.asm.ClassReader。(未知来源)

这是我的pom.xml


4.0.0
org.springframework.boot
spring启动程序父级
2.1.9.1发布
com.lca.dbs
我的服务
1.0.0-SNAPSHOT
战争
人口桥梁服务
桥梁服务项目
1.8
4
1.2.0.1最终版本
1.16.16
12.1.0.2
2.9.2
1.5.20
5.6.0
5.6.0
2.18.3
3.7.0
${project.build.directory}/jacoco.exec
${project.build.directory}/jacoco.exec
${project.reporting.outputDirectory}/jacoco-ut
org.springframework.boot
SpringBootStarterWeb
org.apache.logging.log4j
log4japi
org.springframework.boot
弹簧启动机tomcat
假如
org.springframework.boot
弹簧靴开发工具
运行时
真的
org.springframework.boot
弹簧靴起动器执行器
org.springframework.boot
弹簧靴启动器jdbc
com.oracle
ojdbc
${oracle.db.version}
com.oracle
orai18n
${oracle.db.version}
javax.xml.bind
jaxb api
假如
javax.servlet
javax.servlet-api
假如
org.projectlombok
龙目
${lombok.version}
org.mapstruct
映射结构
${org.mapstruct.version}
org.apache.commons
commons-lang3
org.apache.commons
公共集合4
${apache.common.version}
昂首阔步
招摇过市的注解
${swagger.version}
伊奥·斯普林福克斯
springfox-Swagger 2
${springfox.swagger.version}
伊奥·斯普林福克斯
springfox招摇过市用户界面
${springfox.swagger.version}
org.junit.jupiter
JUnitJupiter api
${junit.jupiter.version}
测试
org.junit.jupiter
朱尼特朱庇特酒店
${junit.jupiter.version}
测试
org.junit.jupiter
朱尼特木星发动机
${junit.jupiter.version}
测试
org.junit.vintage
朱尼特老式发动机
${junit.vintage.version}
测试
org.springframework.boot
弹簧起动试验
测试
${project.artifactId}
org.springframework.boot
springbootmaven插件
org.apache.maven.plugins
maven编译器插件
${java.version}
${java.version}
org.projectlombok
龙目
${lombok.version}
org.mapstruct
mapstruct处理器
${org.mapstruct.version}

这是WebSphere服务器级别中的一个已知问题,它无法处理Java SE 9模块化jar打包(它是在产品发布后引入的)。关于包装的问题,有几个APAR,我认为您遇到了这个具体问题:


当您更新到最新的补丁包时,问题应该会消失。如果由于某种原因这不可行,您将不得不手动删除该JAXB jar中META-INF的任何子目录中的所有.class文件。

这是WebSphere服务器级别中的一个已知问题,在该级别中,它无法处理Java SE 9模块化jar打包(它是在产品发布后引入的)。关于包装的问题,有几个APAR,我认为您遇到了这个具体问题:


当您更新到最新的补丁包时,问题应该会消失。如果由于某种原因这不可行,那么您必须手动删除JAXB jar中META-INF的任何子目录中的所有.class文件。

WAS8.5是一个完整的JEE容器,因此它包含大量的libr
<?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>

    <!-- https://medium.com/@james.tran/how-to-deploy-spring-boot-2-x-apps-on-websphere-8-5-5-d0b2e257f606 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.9.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.lca.dbs</groupId>
    <artifactId>my-services</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <packaging>war</packaging>

    <name>demographic-bridge-services</name>
    <description>bridge services project</description>

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

        <apache.common.version>4.0</apache.common.version>
        <org.mapstruct.version>1.2.0.Final</org.mapstruct.version>
        <lombok.version>1.16.16</lombok.version>

        <oracle.db.version>12.1.0.2</oracle.db.version>

        <springfox.swagger.version>2.9.2</springfox.swagger.version>
        <swagger.version>1.5.20</swagger.version>

        <junit.jupiter.version>5.6.0</junit.jupiter.version>
        <junit.vintage.version>5.6.0</junit.vintage.version>
        <mockito.version>2.18.3</mockito.version>

        <plugin.maven-compiler.version>3.7.0</plugin.maven-compiler.version>

        <jacoco.ut.destfile>${project.build.directory}/jacoco.exec</jacoco.ut.destfile>
        <jacoco.ut.datafile>${project.build.directory}/jacoco.exec</jacoco.ut.datafile>
        <jacoco.ut.reportdir>${project.reporting.outputDirectory}/jacoco-ut</jacoco.ut.reportdir>
    </properties>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- Disabled for websphere -->
        <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-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!-- ORM -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jdbc</artifactId> 
            </dependency> -->

        <!-- Oracle DB Dependencies -->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc</artifactId>
            <version>${oracle.db.version}</version>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>orai18n</artifactId>
            <version>${oracle.db.version}</version>
        </dependency>

        <!-- utils -->
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version><!--$NO-MVN-MAN-VER$-->
        </dependency>
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <version>${org.mapstruct.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <!-- <version>3.7</version> -->
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>${apache.common.version}</version>
        </dependency>

        <!-- Swagger UI/Swagger -->
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${springfox.swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>${springfox.swagger.version}</version>
            </dependency>

            <!--Unit Testing dependencies -->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>${junit.jupiter.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-params</artifactId>
                <version>${junit.jupiter.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>${junit.jupiter.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
                <version>${junit.vintage.version}</version>
                <scope>test</scope>
            </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>


    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${org.mapstruct.version}</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>

        </plugins>
    </build>
</project>