|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
Embedding Felix in resin or tomcat (non osgi supported web containers) problem.Hi!
I'm trying to embedd felix in web servlet container : resin or tomcat and need huge help. Application work perfectly after first init... The problem is that when i use felix web console and click to reload application (system/console/vmstat) ( which reloads system bundle) there is the problem with casing bundle activators e.g.: java.lang.ClassCastException: org.apache.felix.bundlerepository.Activator cannot be cast to org.osgi.framework.BundleActivator at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:3520) at org.apache.felix.framework.Felix.activateBundle(Felix.java:1695) at org.apache.felix.framework.Felix.startBundle(Felix.java:1622) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1077) at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264) So what i'm wondering is how to deal with the problem of class loading here... I think the problem is that resin loaded BundleActivator class and felix detects that and uses it.... is there any simple solution to solve that? Project structure: WEB-INF/ -- lib -> here i keep basic felix bundles -- bundle -> here are bundles like webconsole etc.... -- conf -- web.xml The ProvisionActivator and StartupListener is identical as in Felix web bridge example. public final class FrameworkService { public ServletContext context; public Framework frameworkBundle; public FrameworkService(ServletContext context) { this.context = context; System.setProperty("user.dir", context.getRealPath("WEB-INF")); } public void start() { try { doStart(); } catch (Exception e) { log("Failed to start framework", e); } } public void stop() { try { doStop(); } catch (Exception e) { log("Error stopping framework", e); } } private void doStart() throws Exception { frameworkBundle = initFramework(); frameworkBundle.start(); log("OSGi framework started", null); } private void doStop() throws Exception { if (frameworkBundle != null) frameworkBundle.stop(); log("OSGi framework stopped", null); } private final Framework initFramework() throws BundleException { Main.loadSystemProperties(); Properties configProps = Main.loadConfigProperties(); if (configProps == null) configProps = new Properties(); Main.copySystemProperties(configProps); configProps.put(FelixConstants.SYSTEMBUNDLE_ACTIVATORS_PROP, Arrays .asList(new ProvisionActivator(this.context))); Framework framework = new Framework(configProps); framework.init(); AutoProcessor.process(configProps, framework.getBundleContext()); framework.getBundleContext().registerService(FrameworkService.class.getName(), this, null); return framework; } private void log(String message, Throwable cause) { this.context.log(message, cause); } } CONFIG: felix.cache.rootdir=${user.dir} felix.auto.deploy.action=install,start,update felix.auto.deploy.dir=${user.dir}/bundle felix.log.level=4 felix.fileinstall.dir= ${user.dir}/bundle-load felix.fileinstall.debug = 4 felix.fileinstall.poll= 50 felix.fileinstall.filter= .*\.jar$|.*\.cfg$ obr.repository.url=http://felix.apache.org/obr/releases.xml org.osgi.service.http.port=8080 org.apache.felix.http.debug=true org.apache.felix.http.whiteboardEnabled=false org.osgi.framework.storage.clean=onFirstInit org.osgi.framework.storage=${user.dir}/bundle-cache org.osgi.framework.system.packages = \ org.osgi.framework; version=1.4.0, \ org.osgi.framework.hooks.service, \ org.osgi.framework.launch, \ org.osgi.service.condpermadmin; version=1.0.0, \ org.osgi.service.packageadmin; version=1.2.0, \ org.osgi.service.permissionadmin; version=1.2.0, \ org.osgi.service.startlevel; version=1.1.0, \ org.osgi.service.url; version=1.0.0,\ org.osgi.service.application;version="1.0", \ org.osgi.service.cm;version="1.2", \ org.osgi.service.component;version="1.0", \ org.osgi.service.deploymentadmin;version="1.0", \ org.osgi.service.deploymentadmin.spi;uses:="org.osgi.service.deploymentadmin";version="1.0", \ org.osgi.service.device;version="1.1", \ org.osgi.service.event;version="1.1", \ org.osgi.service.http;version="1.2", \ org.osgi.service.io;version="1.0", \ org.osgi.service.log;version="1.3", \ org.osgi.service.metatype;version="1.1", \ org.osgi.service.monitor;version="1.0", \ org.osgi.service.prefs;version="1.1", \ org.osgi.service.provisioning;version="1.1", \ org.osgi.service.upnp;version="1.1", \ org.osgi.service.useradmin;version="1.1", \ org.osgi.service.wireadmin;version="1.0", \ info.dmtree.notification;version="1.0", \ info.dmtree.notification.spi;uses:="info.dmtree.notification";version="1.0", \ info.dmtree.registry;uses:="info.dmtree.notification";version="1.0", \ info.dmtree.security;version="1.0", \ info.dmtree.spi;version="1.0", \ org.osgi.util.gsm;version="1.0", \ org.osgi.util.measurement;version="1.0", \ org.osgi.util.mobile;version="1.0", \ org.osgi.util.position;uses:="org.osgi.util.measurement";version="1.0", \ org.osgi.util.tracker;version="1.3.3", \ org.osgi.util.xml;version="1.0",\ javax.accessibility,\ javax.activity,\ javax.crypto,\ javax.crypto.interfaces,\ javax.crypto.spec,\ javax.imageio,\ javax.imageio.event,\ javax.imageio.metadata,\ javax.imageio.plugins.bmp,\ javax.imageio.plugins.jpeg,\ javax.imageio.spi,\ javax.imageio.stream,\ javax.management,\ javax.management.loading,\ javax.management.modelmbean,\ javax.management.monitor,\ javax.management.openmbean,\ javax.management.relation,\ javax.management.remote,\ javax.management.remote.rmi,\ javax.management.timer,\ javax.naming,\ javax.naming.directory,\ javax.naming.event,\ javax.naming.ldap,\ javax.naming.spi,\ javax.net,\ javax.net.ssl,\ javax.print,\ javax.print.attribute,\ javax.print.attribute.standard,\ javax.print.event,\ javax.rmi,\ javax.rmi.CORBA,\ javax.rmi.ssl,\ javax.security.auth,\ javax.security.auth.callback,\ javax.security.auth.kerberos,\ javax.security.auth.login,\ javax.security.auth.spi,\ javax.security.auth.x500,\ javax.security.cert,\ javax.security.sasl,\ javax.sound.midi,\ javax.sound.midi.spi,\ javax.sound.sampled,\ javax.sound.sampled.spi,\ javax.sql,\ javax.sql.rowset,\ javax.sql.rowset.serial,\ javax.sql.rowset.spi,\ javax.swing,\ javax.swing.border,\ javax.swing.colorchooser,\ javax.swing.event,\ javax.swing.filechooser,\ javax.swing.plaf,\ javax.swing.plaf.basic,\ javax.swing.plaf.metal,\ javax.swing.plaf.multi,\ javax.swing.plaf.synth,\ javax.swing.table,\ javax.swing.text,\ javax.swing.text.html,\ javax.swing.text.html.parser,\ javax.swing.text.rtf,\ javax.swing.tree,\ javax.swing.undo,\ javax.transaction,\ javax.transaction.xa,\ javax.xml,\ javax.xml.datatype,\ javax.xml.namespace,\ javax.xml.parsers,\ javax.xml.transform,\ javax.xml.transform.dom,\ javax.xml.transform.sax,\ javax.xml.transform.stream,\ javax.xml.validation,\ javax.xml.xpath,\ org.ietf.jgss,\ org.omg.CORBA,\ org.omg.CORBA_2_3,\ org.omg.CORBA_2_3.portable,\ org.omg.CORBA.DynAnyPackage,\ org.omg.CORBA.ORBPackage,\ org.omg.CORBA.portable,\ org.omg.CORBA.TypeCodePackage,\ org.omg.CosNaming,\ org.omg.CosNaming.NamingContextExtPackage,\ org.omg.CosNaming.NamingContextPackage,\ org.omg.Dynamic,\ org.omg.DynamicAny,\ org.omg.DynamicAny.DynAnyFactoryPackage,\ org.omg.DynamicAny.DynAnyPackage,\ org.omg.IOP,\ org.omg.IOP.CodecFactoryPackage,\ org.omg.IOP.CodecPackage,\ org.omg.Messaging,\ org.omg.PortableInterceptor,\ org.omg.PortableInterceptor.ORBInitInfoPackage,\ org.omg.PortableServer,\ org.omg.PortableServer.CurrentPackage,\ org.omg.PortableServer.POAManagerPackage,\ org.omg.PortableServer.POAPackage,\ org.omg.PortableServer.portable,\ org.omg.PortableServer.ServantLocatorPackage,\ org.omg.SendingContext,\ org.omg.stub.java.rmi,\ org.w3c.dom,\ org.w3c.dom.bootstrap,\ org.w3c.dom.css,\ org.w3c.dom.events,\ org.w3c.dom.html,\ org.w3c.dom.ls,\ org.w3c.dom.ranges,\ org.w3c.dom.stylesheets,\ org.w3c.dom.traversal,\ org.w3c.dom.views,\ org.xml.sax,\ org.xml.sax.ext,\ org.xml.sax.helpers,\ javax.servlet;javax.servlet.http;version=2.5,\ org.apache.felix.metatype.internal,\ org.osgi.service.metatype --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@... For additional commands, e-mail: users-help@... |
| Free embeddable forum powered by Nabble | Forum Help |