在静态模块中引用 org.jboss.resteasy 的正确 JBoss 模块依赖性是什么?
What is the correct JBoss module dependency to reference org.jboss.resteasy in a static module?
我正在尝试部署一个使用 resteasy 的静态模块,它作为系统模块预安装:
[me@localhost:3 modules]$ ls -l system/layers/base/org/jboss/resteasy/resteasy-jaxrs/main/
total 660K
-rw-r--r-- 1 coer2 admin 7.7K Jun 2 2017 async-http-servlet-3.0-2.3.10.Final-redhat-1.jar
-rw-r--r-- 1 coer2 admin 2.1K Mar 27 2015 module.xml
-rw-r--r-- 1 coer2 admin 646K Jun 2 2017 resteasy-jaxrs-2.3.10.Final-redhat-1.jar
但是我引用它的尝试失败了。我的模块看起来像:
<?xml version="1.0" ?>
<resources>
<resource-root path="."/>
<resource-root path="JWTAUTHENTICATOR-SNAPSHOT.jar"/>
</resources>
<dependencies>
<module name="org.jboss.resteasy-jaxrs"/>
<module name="javax.servlet.api"/>
<module name="javax.security.jacc.api"/>
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
<module name="org.picketlink.federation"/>
<module name="org.picketlink.federation.bindings"/>
<module name="javax.api"/>
<module name="javax.persistence.api"/>
<module name="javax.resource.api"/>
<module name="javax.security.auth.message.api"/>
<module name="javax.transaction.api"/>
<module name="javax.xml.bind.api"/>
<module name="javax.xml.stream.api"/>
<module name="org.infinispan"/>
<module name="org.jboss.as.web"/>
<module name="org.slf4j"/>
</dependencies>
以下生成的日志输出如下所示:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
11:47:53,135 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.web.valve.JWTAUTHENTICATOR: org.jboss.msc.service.StartException in service jboss.web.valve.JWTAUTHENTICATOR: org.jboss.modules.ModuleNotFoundException: org.jboss.resteasy-jaxrs:main
Caused by: org.jboss.modules.ModuleNotFoundException: org.jboss.resteasy-jaxrs:main
Table 模块 doc 中的 3.1,表示此配置应该足够了,但以前对静态模块依赖项的经验让我对它没有感到惊讶。
我怀疑它不是关于这个特定模块的,而且可能是 resteasy 需要的缺失依赖项。不幸的是,jboss 模块文档没有提供此信息。希望有见识。
谢谢,
罗宾
答案是包命名空间映射到目录结构,所以具体要添加的模块需要追加到包命名空间:
<module name="org.jboss.resteasy.resteasy-jaxrs"/>
我正在尝试部署一个使用 resteasy 的静态模块,它作为系统模块预安装:
[me@localhost:3 modules]$ ls -l system/layers/base/org/jboss/resteasy/resteasy-jaxrs/main/
total 660K
-rw-r--r-- 1 coer2 admin 7.7K Jun 2 2017 async-http-servlet-3.0-2.3.10.Final-redhat-1.jar
-rw-r--r-- 1 coer2 admin 2.1K Mar 27 2015 module.xml
-rw-r--r-- 1 coer2 admin 646K Jun 2 2017 resteasy-jaxrs-2.3.10.Final-redhat-1.jar
但是我引用它的尝试失败了。我的模块看起来像:
<?xml version="1.0" ?>
<resources>
<resource-root path="."/>
<resource-root path="JWTAUTHENTICATOR-SNAPSHOT.jar"/>
</resources>
<dependencies>
<module name="org.jboss.resteasy-jaxrs"/>
<module name="javax.servlet.api"/>
<module name="javax.security.jacc.api"/>
<module name="org.jboss.logging"/>
<module name="org.picketbox"/>
<module name="org.picketlink.federation"/>
<module name="org.picketlink.federation.bindings"/>
<module name="javax.api"/>
<module name="javax.persistence.api"/>
<module name="javax.resource.api"/>
<module name="javax.security.auth.message.api"/>
<module name="javax.transaction.api"/>
<module name="javax.xml.bind.api"/>
<module name="javax.xml.stream.api"/>
<module name="org.infinispan"/>
<module name="org.jboss.as.web"/>
<module name="org.slf4j"/>
</dependencies>
以下生成的日志输出如下所示:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 11:47:53,135 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.web.valve.JWTAUTHENTICATOR: org.jboss.msc.service.StartException in service jboss.web.valve.JWTAUTHENTICATOR: org.jboss.modules.ModuleNotFoundException: org.jboss.resteasy-jaxrs:main Caused by: org.jboss.modules.ModuleNotFoundException: org.jboss.resteasy-jaxrs:main
Table 模块 doc 中的 3.1,表示此配置应该足够了,但以前对静态模块依赖项的经验让我对它没有感到惊讶。
我怀疑它不是关于这个特定模块的,而且可能是 resteasy 需要的缺失依赖项。不幸的是,jboss 模块文档没有提供此信息。希望有见识。
谢谢, 罗宾
答案是包命名空间映射到目录结构,所以具体要添加的模块需要追加到包命名空间:
<module name="org.jboss.resteasy.resteasy-jaxrs"/>