aboutsummaryrefslogtreecommitdiff
path: root/pom.xml
diff options
context:
space:
mode:
authorChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-08-22 10:05:03 +0200
committerChristof Rabensteiner <christof.rabensteiner@iaik.tugraz.at>2019-08-23 15:17:14 +0200
commite6e0950a506d814415d8036e68e54d2034b6d3e7 (patch)
tree8dc0f1c57f063f639ad884a03f951ea9a9f2fb7c /pom.xml
parent763724b04d25d07fce5559c1d7a6c12badab937c (diff)
downloadmoa-zs-e6e0950a506d814415d8036e68e54d2034b6d3e7.tar.gz
moa-zs-e6e0950a506d814415d8036e68e54d2034b6d3e7.tar.bz2
moa-zs-e6e0950a506d814415d8036e68e54d2034b6d3e7.zip
Fix: JAXB + Java >= 9 Class Loader Bug & Ensure Tomcat Deployment
- Problem: Jaxb + JAVA >= 9 Runtime + Tomcat = ClassNotFoundException: ContextFactory. Reason: Apparently, jaxb uses the "wrong" classloader (the system classloader via the thread classloader) and this classloader does not know about jaxb api's and implementations at runtime since oracle decided to move jaxb* out of JRE. Solution: create a new thread, override the thread's "thread" classloader with the "class" classloader and do all jaxb interactions in that thread. See: https://sjhannah.com/blog/2018/11/21/jaxb-hell-on-jdk-9/ - Move "run jaxb interactions in own thread with class class loader" code into own component (JaxbClassNotFoundFix, runInTheadWithClassClassLoader) and wrap ClientFactory and Marshaller code into the "runInTheadWithClassClassLoader". - Ensure that app can be deployed in a Tomcat container (by following this guide: https://www.baeldung.com/spring-boot-war-tomcat-deploy)
Diffstat (limited to 'pom.xml')
-rw-r--r--pom.xml38
1 files changed, 19 insertions, 19 deletions
diff --git a/pom.xml b/pom.xml
index 62a5bdf..a8191bf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -92,11 +92,11 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-tomcat</artifactId>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-tomcat</artifactId>
<version>${springboot.version}</version>
- <scope>provided</scope>
- </dependency>
+ <scope>provided</scope>
+ </dependency>
<!-- cxf -->
<dependency>
<groupId>org.apache.cxf</groupId>
@@ -143,23 +143,23 @@
<version>${jwsapi.version}</version>
</dependency>
<!-- eaaf components. See readme.md for installation -->
- <dependency>
+ <dependency>
+ <groupId>at.gv.egiz.eaaf</groupId>
+ <artifactId>eaaf_module_moa-sig</artifactId>
+ <version>${eaaf-components.version}</version>
+ </dependency>
+ <dependency>
<groupId>at.gv.egiz.eaaf</groupId>
- <artifactId>eaaf_module_moa-sig</artifactId>
+ <artifactId>eaaf-core</artifactId>
<version>${eaaf-components.version}</version>
- </dependency>
- <dependency>
- <groupId>at.gv.egiz.eaaf</groupId>
- <artifactId>eaaf-core</artifactId>
- <version>${eaaf-components.version}</version>
- </dependency>
- <!-- async operation in test -->
- <dependency>
- <groupId>org.awaitility</groupId>
- <artifactId>awaitility</artifactId>
- <version>3.1.6</version>
- <scope>test</scope>
- </dependency>
+ </dependency>
+ <!-- async operation in test -->
+ <dependency>
+ <groupId>org.awaitility</groupId>
+ <artifactId>awaitility</artifactId>
+ <version>3.1.6</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
<finalName>moa-zs</finalName>