簡體   English   中英

Wildfly 20 升級和 OpenJRE 8 - 在模塊路徑或類路徑上未找到 JAXB-API 的實現

[英]Wildfly 20 Upgrade and OpenJRE 8 - Implementation of JAXB-API has not been found on module path or classpath

我們正在使用 openjre-8.0.252.09-hotspot,從 Wildfly 10 升級到 Wildfly 20,並開始面臨以下問題,但:

  • jaxb-impl-2.1.13.jar 已經存在於 WEB-INF\lib
  • rt.jar(在 openjre 中)有:com.sun.xml.internal.bind.v2.ContextFactory

我嘗試添加以下內容但不起作用:

  1. jaxb-api-2.1.jar 到 lib。
  2. 使用 openjdk 而不是 openjre

為什么應用程序找不到 com.sun.xml.internal.bind.v2.ContextFactory class 已經存在於 rt.jar 中? 還有什么我想念的嗎? 我嘗試搜索,但所有答案都與 java 9 及以上相關,但沒有來自 openjre-8 的答案。

錯誤:

Caused by: javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
 - with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory from [Module "deployment.myproject.war" from Service Module Loader]]
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:155)
    at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:141)
    at javax.xml.bind.ContextFinder.find(ContextFinder.java:314)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:478)
    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:435)
    at org.apache.camel.spring.handler.CamelNamespaceHandler.createJaxbContext(CamelNamespaceHandler.java:187)

根本原因:應用程序的 WebInf/lib 中的 jar 之一具有 jaxb.properties,其中包含以下條目: javax.xml.bind.context.factory=com.sun.xml.internal.bind.v2.ContextFactory

刪除它解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM