1

我正在迁移到 JBoss AS 7.1.1.Final,但我遇到了一个问题。一切都适用于 7.1.0.CR1b 但现在我在 OSGi 组件中有此错误:

14:17:51,888 错误 [stderr] (http--127.0.0.1-8080-1) 原因:java.lang.ClassNotFoundException: javax.xml.bind.annotation.adapters.HexBinaryAdapter from [Modu le "deployment.mymodule"来自服务模块加载器] 14:17:51,890 错误 [stderr] (http--127.0.0.1-8080-1) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 14:17:51,892 错误 [ stderr] (http--127.0.0.1-8080-1) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 14:17:51,893 错误 [stderr] (http--127.0.0.1-8080- 1) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 14:17:51,895 错误 [stderr] (http--127.0.0.1-8080-1) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked (ConcurrentClassLoader.java:423) 14:17:51,896 错误 [stderr] (http--127.0.0.1-8080-1) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 14:17:51,897 错误 [stderr] (http--127.0.0.1 -8080-1) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 14:17:51,899 错误 [stderr] (http--127.0.0.1-8080-1) ... 213 更多

在 Felix Web 控制台中,一切似乎都很好:

mymodule :
Imported Packages
[...]
  javax.xml.bind.annotation.adapters,version=0.0.0 from system.bundle(0) 
[...]

0 - system.bundle
Exported Packages
  [...]
  javax.xml.bind.annotation.adapters,version=0.0.0
  [...]

所有捆绑包都处于活动状态。

Standalone.xml 文件与 jboss:domain:osgi 子系统配置不同:7.1.0.CR1b:

<capabilities>
    <capability name="javax.api"/>
    <capability name="javax.servlet.api"/>
    <capability name="javax.transaction.api"/>
    <capability name="org.apache.aries.util"/>
    <capability name="org.jboss.osgi.webconsole"/>
    <capability name="org.osgi.compendium"/>
    <capability name="javax.xml.bind.api"/>
[...]

7.1.1.决赛:

<capabilities>
    <capability name="javax.servlet.api:v25"/>
    <capability name="javax.transaction.api"/>
    <capability name="org.apache.felix.log" startlevel="1"/>
    <capability name="org.jboss.osgi.logging" startlevel="1"/>
    <capability name="org.apache.felix.configadmin" startlevel="1"/>
    <capability name="org.jboss.as.osgi.configadmin" startlevel="1"/>

任何想法 ?

谢谢

4

1 回答 1

2

自 JBoss 7.1.0.Final (我猜)以来,一些包似乎由 system.bundle 导出并由应用程序包正确导入。但不是 !!

javax.xml.bind api 就是这种情况。

解决方法是通过将 org.jboss.osgi.system.modules.extra 属性添加到 osgi 子系统来修改系统包中包含的模块

        <subsystem xmlns="urn:jboss:domain:osgi:1.2" activation="eager">
           <properties>
             <property name="org.jboss.osgi.system.modules.extra">
                javax.xml.bind.api
             </property>
           </properties>
[...]

感谢 Alexander 和 Rico https://community.jboss.org/message/721852

于 2012-09-07T08:55:31.397 回答