I upgraded meanwhile to Karaf 4.3.2, but the problem is still present.

vaadin-server bundle has no dynamic imports. I can see the import in the
vaadin-server bundle:

karaf@root()> la -u | grep vaadin-server
148 | Active   |  80 | 8.13.0                              |
mvn:com.vaadin/vaadin-server/8.13.0

karaf@root()> headers 148
...
Import-Package =
        ...
        org.atmosphere.cpr;resolution:=optional;version=2.4.30.vaadin3,
...

I have the following feature dependencies:
vaadin<- ONE <- TWO

karaf@root()> shutdown
> bin/karaf.bat clean
kara@root()> feature:repo-add ...
karaf@root()> feature:install TWO

> grep vaadin-server data/log/karaf.log
2021-06-21T07:23:43,335 | INFO  | features-3-thread-1 | FeaturesServiceImpl
             | 18 - org.apache.karaf.features.core - 4.3.2 |
mvn:com.vaadin/vaadin-server/8.13.0
2021-06-21T07:23:44,075 | INFO  | features-3-thread-1 | FeaturesServiceImpl
             | 18 - org.apache.karaf.features.core - 4.3.2 |
mvn:com.vaadin/vaadin-server/8.13.0

In this constellation I get now the NoClassDefFoundError when accessing the
Vaadin UI.

karaf@root()> shutdown
> bin/karaf.bat clean
karaf@root()> feature:repo-add ...
karaf@root()> feature:install ONE

> grep vaadin-server data/log/karaf.log
2021-06-21T07:28:53,691 | INFO  | features-3-thread-1 | FeaturesServiceImpl
             | 18 - org.apache.karaf.features.core - 4.3.2 |
mvn:com.vaadin/vaadin-server/8.13.0
2021-06-21T07:28:54,230 | INFO  | features-3-thread-1 | FeaturesServiceImpl
             | 18 - org.apache.karaf.features.core - 4.3.2 |
mvn:com.vaadin/vaadin-server/8.13.0

Now I can access the Vaadin UI.

kara@root()>  feature:install TWO

Vaadin UI is still working.

Are you interested in analyzing this problem? I can provide an instance in
a public cloud.

Regards

  Richard








Am Sa., 19. Juni 2021 um 06:39 Uhr schrieb Jean-Baptiste Onofre <
j...@nanthrax.net>:

> Hi Richard,
>
> Did you see a refresh when you install feature TWO ?
>
> Do you see org.atmosphere.cpr import in vaadin server bundle or is it a
> dynamic import ?
>
> Regards
> JB
>
> Le 18 juin 2021 à 18:21, Richard Hierlmeier <rhierlme...@googlemail.com>
> a écrit :
>
>
> I have a strange error in a Vaadin application running in Karaf 4.3.1. I
> have two features, that use Vaadin. Feature ONE works fine. When feature
> TWO is deployed I get the following error when accessing the Vaadin UI:
>
> java.lang.NoClassDefFoundError: org/atmosphere/cpr/AtmosphereHandler
> at
> com.vaadin.server.VaadinServletService.createRequestHandlers(VaadinServletService.java:68)
> at com.vaadin.server.VaadinService.init(VaadinService.java:219)
> at
> com.vaadin.server.VaadinServlet.createServletService(VaadinServlet.java:380)
> at com.vaadin.server.VaadinServlet.init(VaadinServlet.java:210)
> at de.hierlmeier.karaf.vaadinsample.UIServlet.init(UIServlet.java:44)
> at
> org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:624)
> at
> org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:478)
> at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:751)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
> at
> org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> ...
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException:
> org.atmosphere.cpr.AtmosphereHandler not found by com.vaadin.server [159]
> at
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1565)
> at
> org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:78)
> at
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1950)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> ... 39 more
>
> I debugged the code down to the class  BundleWiringImpl and found out that
> when feature TWO is deployed, then the package  org.atmosphere.cpr is no
> longer in the m_importedPkgs Variable of BundleWiringImpl instance of
> bundle 159.
>
> However the Karaf console tells me that the import is available:
>
> de@root()> imports -b 159 | grep org.atmosphere.cpr
> org.atmosphere.cpr                            | [2.4.30.vaadin3,) |
> resolved   | 159 | com.vaadin.server
>
> The bundle that exports org.atmosphere.cpr is also available:
>
> de@root()> exports | grep org.atmosphere.cpr
> org.atmosphere.cpr
>                             | 2.4.30.vaadin3                      | 155 |
> com.vaadin.external.atmosphere.runtime
>
>
>
> Regards
>
>    Richard
>
>
>
>
>
>
>
>
>
>
>

Reply via email to