Reputation: 769
Springboot - 2.1.9.RELEASE war deployment to Websphere 8.5.5.11 failing
[5/17/20 1:05:31:181 EDT] 0000007d ecs W com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl scanJAR unable to open input stream for resource module-info.class in archive WEB-INF/lib-provided/jaxb-api-2.3.1.jar java.lang.IllegalArgumentException at org.objectweb.asm.ClassReader.(Unknown Source)
[5/17/20 1:05:32:185 EDT] 0000007d ecs W com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl scanJAR unable to open input stream for resource META-INF/versions/9/module-info.class in archive WEB-INF/lib/byte-buddy-1.9.16.jar java.lang.IllegalArgumentException at org.objectweb.asm.ClassReader.(Unknown Source)
here is my 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>
<!-- 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>
Upvotes: 0
Views: 894
Reputation: 2018
This is a known issue in that level of the WebSphere server in which it's unable to handle Java SE 9 modular jar packaging (it was introduced after the product shipped). There are a couple APARs for issues around that packaging, and I think you're hitting this specific one: https://www.ibm.com/support/pages/apar/PI89708
The issue should go away when you update to the latest fixpack. If that's not feasible for some reason, you'll have to manually remove all .class files from any subdirectories of META-INF in that JAXB jar.
Upvotes: 2