wildfly忽略META-INF / services / java.util.prefs.PreferencesFactory

时间:2016-09-17 12:31:27

标签: java jboss wildfly

我正在将具有以下结构的耳朵部署到WildFly 9.0.2。

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 /服务导入问题。

代码:https://github.com/KiranMohan/wildfly-playground/tree/master/app-only-preference-factory

更新 事实证明问题在于Java Preferences类,它使用系统类加载器来加载服务提供者。 我通过编写自己的Preferences.systemRoot()函数实现来解决这个问题,它首先检查服务提供者而不使用系统类加载器。 该代码可在上面提到的github链接中找到。

0 个答案:

没有答案