Jboss EAP 6.4模块资源根路径

use*_*290 2 jboss7.x jboss-modules

我试图创建包含jks和jar文件的Jboss模块.虽然我能够使它工作,但我不明白为什么它的工作原理.当我为jar和jks文件定义resource-root时.

<module xmlns="urn:jboss:module:1.1" name="my.module"> <resources> <resource-root path="foo.jar"/> <resource-root path="mykey.jks"/> </resources> </module>

我收到以下错误:

org.jboss.modules.xml.XmlPullParserException:无法在路径'mykey.jks'中添加资源根'mykey.jks'(位置:END_TAG见过......"foo.jar"/>\r \n ... ... 3:42)由以下原因引起:java.util.zip.ZipException:打开zip文件时出错

但是,如果我定义资源根,因为<resource-root path="."/>一切正常.

当我使用"."时,有谁知道它为什么有效.作为资源根路径?Jboss的神奇之处是什么?

谢谢大卫

eis*_*eis 5

引用这个:

资源根是模块的类加载器将查找类和资源的位置的规范.每个模块都有零个或多个资源根,但大多数常规模块只包含一个,它引用带有模块内容的JAR文件.

在人类方面,resource-root意味着用于目录或.zip文件(.jar,.rar等文件也是如此).jks文件不是.zip文件或目录,因此打开.zip文件时出错.

一旦密钥库(.jks)文件在类路径中,它就可以通过KeyStore抽象加载.密钥库文件需要在类路径中,因此这就是将点指定为资源根的原因.JBoss实际上并没有做任何魔术.