Jboss EAP 6.4模块资源根路径

时间:2015-10-12 20:24:56

标签: 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”/&gt; \ r \ n ... @ 3:42)由以下原因引起:java.util.zip.ZipException:打开zip文件时出错

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

当我使用“。”时,有谁知道它为什么会起作用。作为资源根路径? Jboss的魔力是什么?

由于 大卫

2 个答案:

答案 0 :(得分:5)

引用this

  

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

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

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

答案 1 :(得分:2)

尝试提供资源根路径和名称属性。 如果只提供路径属性,jboss将尝试使用zip util

打开它

例如:

<module xmlns="urn:jboss:module:1.0" name="az.ac.localit">
    <resources>
        <resource-root path="." name="travel_app.properties"></resource-root>
    </resources>
</module>