Quarkus Native使用Apache XML Security初始化资源包缺失问题咨询
问题解决方案
这个报错的核心原因是GraalVM构建原生镜像时,默认不会自动收录第三方Jar包中的国际化资源文件,Apache XML Security依赖的org/apache/xml/security/resource/xmlsecurity*.properties系列资源包没有被打包进原生镜像,导致运行时加载失败。
可行解决方案
- 方案1:修改application.properties配置(推荐)
在项目的application.properties配置文件中添加如下两行配置即可:
配置完成后重新构建原生镜像即可生效。# 收录Apache XML Security的所有国际化资源文件 quarkus.native.resources.includes = org/apache/xml/security/resource/xmlsecurity*.properties # 显式注册资源bundle适配Locale加载逻辑 quarkus.native.resource-bundles = org.apache.xml.security.resource.xmlsecurity - 方案2:打包时通过命令行参数传入
如果不想修改配置文件,也可以在执行原生镜像构建命令时,追加对应的参数,示例Maven构建命令如下:mvn package -Dnative \ -Dquarkus.native.enable-all-security-services=true \ -Dquarkus.ssl.native=true \ -Dquarkus.native.resources.includes=org/apache/xml/security/resource/xmlsecurity*.properties \ -Dquarkus.native.resource-bundles=org.apache.xml.security.resource.xmlsecurity
验证
配置生效后,重新构建的原生镜像运行时调用org.apache.xml.security.Init.init()就不会再抛出资源包缺失的异常。
内容的提问来源于stack exchange,提问作者Martinffx
相关产品推荐
相关产品推荐

