![](/img/trans.png)
[英]Gradle build fails with cannot find symbol “org.jcp.xml.dsig.internal.dom.XMLDSigRI”
[英]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.