簡體   English   中英

無法訪問 class org.jcp.xml.dsig.internal.dom.XMLDSigRI(在模塊 java.xml.crypto 中)

[英]cannot access class org.jcp.xml.dsig.internal.dom.XMLDSigRI (in module java.xml.crypto)

我們正在使用 XMLSignatureFactory 來獲取如下實例。 這在 JDK 12 中運行良好,但現在升級到 JDK17 時在運行時出現以下錯誤。 任何人都可以提供意見。

String providerName = System.getProperty("jsr105Provider", "org.jcp.xml.dsig.internal.dom.XMLDSigRI");
        try {
            return XMLSignatureFactory.getInstance("DOM", (Provider) Class.forName(providerName).newInstance());

}.......

Caused by: java.lang.IllegalAccessException: class com.test.OutboundMessageHandlerImpl cannot access class org.jcp.xml.dsig.internal.dom.XMLDSigRI (in module java.xml.crypto) because module java.xml.crypto does not export org.jcp.xml.dsig.internal.dom to unnamed module @6580cfdd

Java 17 對反思/內省更嚴格。

作為快速修復,您可以在運行應用程序時添加--add-opens java.xml.crypto/org.jcp.xml.dsig.internal.dom=ALL-UNNAMED作為 vm 選項。 但是,如果可能,您應該將 package 升級到與 java 17 兼容的版本。

暫無
暫無

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

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