You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Valentin Valchev (JIRA)" <ji...@apache.org> on 2011/02/13 19:28:57 UTC

[jira] Commented: (FELIX-2839) SCR and Deployment Admin dependency

    [ https://issues.apache.org/jira/browse/FELIX-2839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12994132#comment-12994132 ] 

Valentin Valchev commented on FELIX-2839:
-----------------------------------------

I'm not sure if this is bug. Web-console has few build-in plugins, that in some cases will fail to initialize. In your case, you don't have the SCR or Deployment Admin API and the related plugins cannot be instantiated. So, webconsole logs an warning and continues to sever other build-in plugins.

For me it would be a problem if after logging those errors, the webconsole cease to work properly or the user gets internal server error.

I also had similar talk with my colleague. As a company providing commercial osgi solution, it is somehow strange, that you always get an error message, the first time you open the webconsole. Unfortunately, if this warning is removed, then it would be quite hard to detect why plugin instantiation failed. As advanced OSGi user, I personally would like to know why my plugin is not running. The log message is the description of possible problem, silently ignoring the problem for me would be a bigger issue.

There was discussion about having those plugins in separate jar files, but if you need them you will install 3 file instead of one. With the current webconsole you need to install one file, but see those warnings in the log files. So it's a matter of usability versus 'not logging warnings'. IMHO usability wins.

However, if you really dislike those warnings and you want a quick fix for the problem, just install a bundle providing SCR and Deployment Admin API. You don't need services implementing them, just the API.

> SCR and Deployment Admin dependency
> -----------------------------------
>
>                 Key: FELIX-2839
>                 URL: https://issues.apache.org/jira/browse/FELIX-2839
>             Project: Felix
>          Issue Type: Bug
>          Components: Web Console
>    Affects Versions: webconsole-3.1.8
>         Environment: equinox + PAX WEB bundle 0.7.0 + Apache Felix Web Console 3.1.8
>            Reporter: Gelly Fischer
>            Priority: Minor
>
> Exceptions thrown when accessing Web Console first time:
> WARN 114148@qtp-9788629-0 org.mortbay.jetty./ - org.ops4j.pax.web.service.spi.model.ServletModel-5: Failed to instantiate plugin org.apache.felix.webconsole.internal.deppack.DepPackServlet
> java.lang.NoClassDefFoundError: org/osgi/service/deploymentadmin/DeploymentException
> 	at java.lang.Class.getDeclaredConstructors0(Native Method)
> 	at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
> 	at java.lang.Class.getConstructor0(Unknown Source)
> 	at java.lang.Class.newInstance0(Unknown Source)
> 	at java.lang.Class.newInstance(Unknown Source)
> 	at org.apache.felix.webconsole.internal.servlet.PluginHolder$InternalPlugin.doGetConsolePlugin(PluginHolder.java:761)
> 	at org.apache.felix.webconsole.internal.servlet.PluginHolder$Plugin.getConsolePlugin(PluginHolder.java:532)
> 	at org.apache.felix.webconsole.internal.servlet.PluginHolder.getLocalizedLabelMap(PluginHolder.java:242)
> 	at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:420)
> 	at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:384)
> 	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)
> 	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> 	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle(HttpServiceContext.java:111)
> 	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> 	at org.mortbay.jetty.Server.handle(Server.java:326)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> 	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
> Caused by: java.lang.ClassNotFoundException: org.osgi.service.deploymentadmin.DeploymentException
> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
> 	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
> 	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
> 	at java.lang.ClassLoader.loadClass(Unknown Source)
> 	... 26 more
> WARN 114148@qtp-9788629-0 org.mortbay.jetty./ - org.ops4j.pax.web.service.spi.model.ServletModel-5: Failed to instantiate plugin org.apache.felix.webconsole.internal.compendium.ComponentsServlet
> java.lang.NoClassDefFoundError: org.apache.felix.scr.ScrService
> 	at org.apache.felix.webconsole.internal.compendium.ComponentsServlet.class$(ComponentsServlet.java:74)
> 	at org.apache.felix.webconsole.internal.compendium.ComponentsServlet.<clinit>(ComponentsServlet.java:74)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
> 	at java.lang.reflect.Constructor.newInstance(Unknown Source)
> 	at java.lang.Class.newInstance0(Unknown Source)
> 	at java.lang.Class.newInstance(Unknown Source)
> 	at org.apache.felix.webconsole.internal.servlet.PluginHolder$InternalPlugin.doGetConsolePlugin(PluginHolder.java:761)
> 	at org.apache.felix.webconsole.internal.servlet.PluginHolder$Plugin.getConsolePlugin(PluginHolder.java:532)
> 	at org.apache.felix.webconsole.internal.servlet.PluginHolder.getLocalizedLabelMap(PluginHolder.java:242)
> 	at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:420)
> 	at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:384)
> 	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389)
> 	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> 	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle(HttpServiceContext.java:111)
> 	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> 	at org.mortbay.jetty.Server.handle(Server.java:326)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> 	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira