1
votes

I'm moving to JBoss AS 7.1.1.Final and I have an issue. All works well with 7.1.0.CR1b but now I have this error in an OSGi component :

14:17:51,888 ERROR [stderr] (http--127.0.0.1-8080-1) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.adapters.HexBinaryAdapter from [Modu le "deployment.mymodule" from Service Module Loader] 14:17:51,890 ERROR [stderr] (http--127.0.0.1-8080-1) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 14:17:51,892 ERROR [stderr] (http--127.0.0.1-8080-1) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 14:17:51,893 ERROR [stderr] (http--127.0.0.1-8080-1) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 14:17:51,895 ERROR [stderr] (http--127.0.0.1-8080-1) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423) 14:17:51,896 ERROR [stderr] (http--127.0.0.1-8080-1) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 14:17:51,897 ERROR [stderr] (http--127.0.0.1-8080-1) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 14:17:51,899 ERROR [stderr] (http--127.0.0.1-8080-1) ... 213 more

In the Felix Web Console all seems to be good :

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

and

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

all bundles are active.

standalone.xml files are not the same regarding to the jboss:domain:osgi subsystem configuration: 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.Final :

<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"/>

Any idea ?

Thkx

1

1 Answers

2
votes

Since JBoss 7.1.0.Final (I guess), some packages seems to be exported by system.bundle and correcly imported by application bundles. But not !!

This is the case for javax.xml.bind api.

The work around is to modify the modules included in the system bundle by adding the org.jboss.osgi.system.modules.extra property to the osgi subsystem

        <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>
[...]

Thanks to Alexander and Rico https://community.jboss.org/message/721852