activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Grzegorz Grzybek (JIRA)" <>
Subject [jira] [Commented] (AMQ-4850) NoClassDefFoundError: javax/net/ssl/SSLServerSocket (in Karaf)
Date Mon, 09 Dec 2013 12:47:07 GMT


Grzegorz Grzybek commented on AMQ-4850:

Theoretically your {{Import-Package}} for {{org.apache.activemq}} should be satisfied by *any*
relevant {{Export-Package}} - I don't know why Equinox chooses the export from the console
and not the {{activemq-osgi}} - the spec says it chooses the export from the _first resolved
bundle_ - what are the bundle ids of {{org.apache.activemq.activemq-web-console}} and {{activemq-osgi}}?
(check {{osgi:list}}).
What you said that after the problem occurs, it exists after the restarts - it exists, because
Equinox caches the state of resolution (and bundle wiring through Import-Export connections).

I think that cutting of all the exports from {{activemq-web-console}} should resolve the problem
- also uninstallng the console. But I'm only a humble open source enthusiast and cannot decide
what this bundle exports...

try stopping the {{activemq-web-console}} bundle (you have id=223):
osgi:stop 223
osgi:update 223
first command changes its state to {{resolved}}, second - to {{installed}}. Then try restarting
your bundles.

I think that eventually web console should *not* export its internal JARs' packages...

Grzegorz Grzybek

> NoClassDefFoundError: javax/net/ssl/SSLServerSocket (in Karaf)
> --------------------------------------------------------------
>                 Key: AMQ-4850
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: OSGi/Karaf
>    Affects Versions: 5.9.0
>         Environment: Oracle JDK 7u45, Karaf 2.3.3 with activemq-broker installed from
5.9.0 feature
>            Reporter: Amichai Rothman
>            Assignee: Jean-Baptiste Onofré
> I couldn't find a way to recreate this consistently, but after repeating several times
the following steps reproduce it:
> 1. Install custom Karaf 2.3.3 from scratch. Customizations include installing the activemq-broker
feature using the featuresBoot configuration (along with a couple other unrelated features),
and a dozen or so of my application's bundles in the deploy folder.
> 2. Start Karaf - everything works fine.
> 3. Shut down Karaf.
> 4. Touch my application's 'common' bundle (in deploy folder). The other application bundles
depend on this one. This is *not* the bundle that uses ActiveMQ.
> 5. Start Karaf - it first starts all the app bundles (the old version I think), then
it picks up the modified bundle timestamp and restarts the app bundles in what appears to
be arbitrary order. This usually works, but once in a while the app's 'bus' bundle (which
connects to ActiveMQ) fails to start with this exception showing up in the logs.
> 6. Interestingly, restarting the app or activemq bundles, or even restarting Karaf itself,
doesn't fix things - once it enters this invalid state, it seems to stay stuck in it and continues
with the same exception and with the app unable to connect to ActiveMQ. However, if I shut
down Karaf and once again touch my app's 'common' bundle in the deploy folder and then start
up Karaf again, it restarts the app bundles and this time everything goes back to normal,
with a successful connection to ActiveMQ. So it looks like while the first occurrence is not
recreated consistently, this state is not just a runtime thing but remains persisted somehow
for as long as the app bundle files aren't modified.
> Here is the stack trace:
> java.lang.NoClassDefFoundError: javax/net/ssl/SSLServerSocket
>         at org.apache.activemq.util.IntrospectionSupport.setProperty(
>         at org.apache.activemq.util.IntrospectionSupport.setProperties(
>         at org.apache.activemq.transport.failover.FailoverTransportFactory.createTransport(
>         at org.apache.activemq.transport.failover.FailoverTransportFactory.createTransport(
>         at org.apache.activemq.transport.failover.FailoverTransportFactory.doConnect(
>         at org.apache.activemq.transport.TransportFactory.connect(
>         at org.apache.activemq.ActiveMQConnectionFactory.createTransport(
>         at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(
>         at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(
>         at org.apache.activemq.ActiveMQConnectionFactory.createConnection(
> ...

This message was sent by Atlassian JIRA

View raw message