users@grizzly.java.net

Re: osgi httpservice jersey help

From: Hubert Iwaniuk <neotyk_at_kungfoo.pl>
Date: Fri, 22 Jan 2010 16:38:58 +0100

Hi David,

Please try uploading to http://www.rapidshare.com/ or something similar.

Regards,
Hubert.



On Fri, Jan 22, 2010 at 3:53 PM, David Tkaczyk <djt69_at_comcast.net> wrote:
> Alexey,
>
>
>
> Thank you very much for the response – I had just about given up hope of
> ever getting this to work – it has taken up far too much time already.
>  Given the large amount of required Jersey bundles/jar files I’m not sure
> how “small” it really is.  It doesn’t appear to me like the latest Jersey
> bundle uses “resolution optional” enough.  My code within the project is
> very small.
>
>
>
> I’ve gzipped up my entire eclipse project (~32MB) – is there an FTP site I
> can drop this file in?  If this is not possible I can send you a bit more of
> my code. The “bundle” directory in that project has everything in it
> necessary to startup felix.
>
>
>
> I’m using java 1.6 and org.apache.felix.main.Main to startup Felix.
>
>
>
> Thanks,
> Dave
>
>
>
> ________________________________
>
> From: Oleksiy.Stashok_at_Sun.COM [mailto:Oleksiy.Stashok_at_Sun.COM]
> Sent: Friday, January 22, 2010 9:11 AM
> To: users_at_grizzly.dev.java.net
> Subject: Re: osgi httpservice jersey help
>
>
>
> Hi David,
>
>
>
> can you pls. provide a testcase (small project) to reproduce the issue?
>
>
>
> Thank you.
>
>
>
> WBR,
>
> Alexey.
>
>
>
> On Jan 22, 2010, at 0:09 , David Tkaczyk wrote:
>
> Hi,
>
>
>
> Has anyone ever tested Grizzly’s HttpService with a Jersey ServletContainer?
>  I have tried several different ways and have failed to get Jersey to locate
> my resource file.  I see an Embedded Grizzly test in the Jersey tests, but
> not one with HttpService.  I see use of the Jersey client in the Grizzly
> tests, but no use of the Jersey servlet.
>
>
>
> I’m using Felix BTW.
>
>
>
> Here’s my code and the result from the startup log file.
>
>
>
> package camiant.osgi.msr.rest;
>
>
>
> import java.util.Dictionary;
>
> import java.util.Hashtable;
>
>
>
> import org.osgi.framework.ServiceReference;
>
> import org.osgi.service.http.HttpService;
>
> import org.osgi.util.tracker.ServiceTrackerCustomizer;
>
> import org.slf4j.Logger;
>
> import org.slf4j.LoggerFactory;
>
>
>
> import com.sun.jersey.api.core.PackagesResourceConfig;
>
> import com.sun.jersey.spi.container.servlet.ServletContainer;
>
>
>
> public class RestGrizzlyServiceTrackerCustomizer implements
> ServiceTrackerCustomizer {
>
>
>
>   private static final Logger LOGGER =
> LoggerFactory.getLogger(RestGrizzlyServiceTrackerCustomizer.class);
>
>
>
>   @Override
>
>   public Object addingService(ServiceReference serviceRef) {
>
>     LOGGER.info("Adding service: " +
> serviceRef.getBundle().getSymbolicName());
>
>
>
>     Dictionary<String, String> JERSEY_INIT_PARAMS = new Hashtable<String,
> String>();
>
>
>
>     // package based
>
>     JERSEY_INIT_PARAMS.put(PackagesResourceConfig.PROPERTY_PACKAGES,
> "camiant.osgi.msr.rest.resource");
>
>
>
>     // application based
>
>     //JERSEY_INIT_PARAMS.put("javax.ws.rs.Application",
> "camiant.osgi.msr.rest.MSRRestApplication");
>
>
>
>     // resource based
>
>     // JERSEY_INIT_PARAMS.put("com.sun.jersey.config.property.classnames",
> Resource1.class.getCanonicalName());
>
>     //
> JERSEY_INIT_PARAMS.put("com.sun.jersey.config.property.resourceConfigClass",
> ClassNamesResourceConfig.class.getName());
>
>
>
>     HttpService grizzlyService =
> (HttpService)serviceRef.getBundle().getBundleContext().getService(serviceRef);
>
>     try {
>
>       ServletContainer jerseyServletContainer = new ServletContainer();
>
>
>
>       grizzlyService.registerServlet("/rs", jerseyServletContainer,
> JERSEY_INIT_PARAMS, null);
>
>     } catch (Exception e) {
>
>       e.printStackTrace();
>
>       grizzlyService = null;
>
>     }
>
>
>
>     return grizzlyService;
>
>   }
>
>
>
>   @Override
>
>   public void modifiedService(ServiceReference serviceRef, Object
> httpService) {
>
>     LOGGER.info("Modifying service: " +
> serviceRef.getBundle().getSymbolicName());
>
>     removedService(serviceRef, httpService);
>
>     addingService(serviceRef);
>
>   }
>
>
>
>   @Override
>
>   public void removedService(ServiceReference serviceRef, Object
> httpService) {
>
>     LOGGER.info("Removing service: " +
> serviceRef.getBundle().getSymbolicName());
>
>     serviceRef.getBundle().getBundleContext().ungetService(serviceRef);
>
>     httpService = null;
>
>   }
>
>
>
> }
>
>
>
> Welcome to Felix
>
> ================
>
> 2010-01-21 17:55:36,020-0500  INFO SLF4JBridgeActivator:23 - SLF4J JUL
> Bridge - starting
>
> 2010-01-21 17:55:36,024-0500  INFO SLF4JBridgeActivator:35 - SLF4J JUL
> Bridge - started
>
> 2010-01-21 17:55:36,100-0500  INFO RestBundleActivator:23 - Info - Starting
> Rest Bundle!!!!!!!!!!!!!
>
> 2010-01-21 17:55:36,101-0500  INFO RestMSRCoreServiceTrackerCustomizer:16 -
> Adding service: camiant.osgi.msr.core
>
> 2010-01-21 17:55:36,185-0500  INFO grizzly:765 - Starting Grizzly Framework
> 1.9.18-k - Thu Jan 21 17:55:36 EST 2010
>
> 2010-01-21 17:55:36,205-0500  INFO RestGrizzlyServiceTrackerCustomizer:21 -
> Adding service: com.sun.grizzly.osgi.grizzly-httpservice-bundle
>
> 2010-01-21 17:55:36,226-0500  INFO PackagesResourceConfig:107 - Scanning for
> root resource and provider classes in the packages:
>
>   camiant.osgi.msr.rest.resource
>
> 2010-01-21 17:55:36,250-0500  INFO ScanningResourceConfig:76 - No root
> resource classes found.
>
> 2010-01-21 17:55:36,250-0500  INFO ScanningResourceConfig:83 - No provider
> classes found.
>
> ERROR: EventDispatcher: Error during dispatch.
> (com.sun.jersey.spi.service.ServiceConfigurationError:
> com.sun.jersey.spi.container.WebApplicationProvider: The class
> com.sun.jersey.server.impl.container.WebApplicationProviderImpl implementing
> provider interface com.sun.jersey.spi.container.WebApplicationProvider could
> not be instantiated: null)
>
> com.sun.jersey.spi.service.ServiceConfigurationError:
> com.sun.jersey.spi.container.WebApplicationProvider: The class
> com.sun.jersey.server.impl.container.WebApplicationProviderImpl implementing
> provider interface com.sun.jersey.spi.container.WebApplicationProvider could
> not be instantiated: null
>
>             at
> com.sun.jersey.spi.service.ServiceFinder.fail(ServiceFinder.java:380)
>
>             at
> com.sun.jersey.spi.service.ServiceFinder.access$600(ServiceFinder.java:144)
>
>             at
> com.sun.jersey.spi.service.ServiceFinder$LazyObjectIterator.hasNext(ServiceFinder.java:683)
>
>             at
> com.sun.jersey.spi.container.WebApplicationFactory.createWebApplication(WebApplicationFactory.java:61)
>
>             at
> com.sun.jersey.spi.container.servlet.ServletContainer.create(ServletContainer.java:325)
>
>             at
> com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.create(ServletContainer.java:240)
>
>             at
> com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:548)
>
>             at
> com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:201)
>
>             at
> com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:307)
>
>             at
> com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:470)
>
>             at javax.servlet.GenericServlet.init(GenericServlet.java:242)
>
>             at
> com.sun.grizzly.http.servlet.ServletAdapter.loadServlet(ServletAdapter.java:428)
>
>             at
> com.sun.grizzly.osgi.httpservice.OSGiServletAdapter.startServlet(OSGiServletAdapter.java:99)
>
>             at
> com.sun.grizzly.osgi.httpservice.OSGiMainAdapter.registerServletAdapter(OSGiMainAdapter.java:178)
>
>             at
> com.sun.grizzly.osgi.httpservice.HttpServiceImpl.registerServlet(HttpServiceImpl.java:92)
>
>             at
> camiant.osgi.msr.rest.RestGrizzlyServiceTrackerCustomizer.addingService(RestGrizzlyServiceTrackerCustomizer.java:38)
>
>             at
> org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:896)
>
>             at
> org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:261)
>
>             at
> org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:233)
>
>             at
> org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:840)
>
>             at
> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:878)
>
>             at
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:732)
>
>             at
> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662)
>
>             at
> org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3587)
>
>             at org.apache.felix.framework.Felix.access$000(Felix.java:40)
>
>             at
> org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:625)
>
>             at
> org.apache.felix.framework.ServiceRegistry.registerService(ServiceRegistry.java:90)
>
>             at
> org.apache.felix.framework.Felix.registerService(Felix.java:2711)
>
>             at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:252)
>
>             at
> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:230)
>
>             at
> com.sun.grizzly.osgi.httpservice.Activator.start(Activator.java:89)
>
>             at
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:639)
>
>             at
> org.apache.felix.framework.Felix.activateBundle(Felix.java:1700)
>
>             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)
>
>             at java.lang.Thread.run(Thread.java:619)
>
> Caused by: java.lang.ClassCastException
>
>             at java.lang.Class.cast(Class.java:2990)
>
>             at
> com.sun.jersey.spi.service.ServiceFinder$LazyObjectIterator.hasNext(ServiceFinder.java:641)
>
>             ... 34 more
>
> ->
>
>
>
> So, I’ve tried package-based, resource-based, and application methods of
> trying to get Jersey to locate my resource file.  No luck at all.  Am I not
> bundling things such that Jersey can see them (i.e. classload issue?).
>
>
>
> Any help would be greatly appreciated.
>
>
>
> Thanks,
> Dave
>
>
>
> P.S. here’s the ps…
>
>
>
> -> ps -l
>
> START LEVEL 1
>
>    ID   State         Level  Location
>
> [   0] [Active     ] [    0] System Bundle
>
> [   1] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/ant.jar
>
> [   2] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/asm-all-3.2.jar
>
> [   3] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/camiant.osgi.msr.core.jar
>
> [   4] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/camiant.osgi.msr.log.jar
>
> [   5] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/camiant.osgi.msr.rest.jar
>
> [   6] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/dom4j-1.6.1.jar
>
> [   7] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/grizzly-httpservice-bundle-1.9.18-k.jar
>
> [   8] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/hibernate.bundle.jar
>
> [   9] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/http-20070405.jar
>
> [  10] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/jackson-core-asl-1.1.1.jar
>
> [  11] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/javax.annotation.jar
>
> [  12] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/javax.ejb.jar
>
> [  13] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/javax.servlet.jar
>
> [  14] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/javax.servlet.jsp.jar
>
> [  15] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/jaxb-osgi.jar
>
> [  16] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/jdom.jar
>
> [  17] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/jersey-bundle-1.1.5.jar
>
> [  18] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/jettison-1.1.jar
>
> [  19] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/jsr311-api-1.1.1.jar
>
> [  20] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/jul-to-slf4j-1.5.8.jar
>
> [  21] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/mail.jar
>
> [  22] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/org.apache.felix.configadmin-1.2.4.jar
>
> [  23] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/org.apache.felix.http.api-2.0.4.jar
>
> [  24] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/org.apache.felix.http.base-2.0.4.jar
>
> [  25] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/org.apache.felix.scr-1.4.0.jar
>
> [  26] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/org.apache.felix.shell-1.4.1.jar
>
> [  27] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/org.apache.felix.shell.tui-1.4.1.jar
>
> [  28] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/org.apache.felix.webconsole-2.0.2.jar
>
> [  29] [Resolved   ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/org.apache.log4j.properties.jar
>
> [  30] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/org.apache.log4j_1.2.15.v200910021404.jar
>
> [  31] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/org.osgi.compendium-4.2.0.jar
>
> [  32] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/rome-1.0.jar
>
> [  33] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/slf4j-api-1.5.8.jar
>
> [  34] [Resolved   ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/slf4j-log4j12-1.5.8.jar
>
> [  35] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/sun.rt.jar
>
> [  36] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/tools.jar
>
> [  37] [Active     ] [    1]
> file:/home/users/dtkaczyk/ewks1/OSGi_1/bundle/weld-osgi-bundle.jar
>
> ->
>
>
>
> David Tkaczyk
>
> Member of Technical Staff
>
> Office: 508-303-4162
>
> Fax:  508-486-9595
>
>
>
> <image001.gif>
>
>
>
> www.camiant.com
>
> 200 Nickerson Road, Marlborough, MA 01752-4603 USA
>
>
>
> <image002.gif>
>
>
>
>