wildfly忽略META-INF/services/java.util.prefs.PreferencesFactory
我正在为WildFly 9.0.2部署一个具有以下结构的earwildfly忽略META-INF/services/java.util.prefs.PreferencesFactory,java,jboss,wildfly,Java,Jboss,Wildfly,我正在为WildFly 9.0.2部署一个具有以下结构的ear app.ear |- app-ejb.jar |- preferences-lib.jar |- META-INF/jboss-deployment-structure.xml preferences-lib.jar包含实现java.util.prefs.PreferencesFactory的自定义PreferencesFactory。还定义了META-INF/services/java.util.prefs.P
app.ear
|- app-ejb.jar
|- preferences-lib.jar
|- META-INF/jboss-deployment-structure.xml
preferences-lib.jar包含实现java.util.prefs.PreferencesFactory的自定义PreferencesFactory。还定义了META-INF/services/java.util.prefs.PreferencesFactory
preferences-lib.jar
|- com/**
|- META-INF/services/java.util.prefs.PreferencesFactory
默认情况下,WildFly忽略META-INF文件夹,但允许使用jboss-deployment-structure.xml导入该文件夹。我尝试了各种组合,但WildFly一直忽略META-INF文件夹,因此我无法在应用程序中使用自定义首选项工厂
请帮助我解决此META-INF/服务导入问题
代码:
更新:
问题在于Java Preferences类,它使用系统类加载器加载服务提供者。
我通过编写自己的Preferences.systemRoot()函数实现修复了这个问题,它首先检查服务提供者,而不使用系统类加载器。
代码可以在上面提到的github链接中找到