users@glassfish.java.net

Re: Can a web service deployed in Grizzly access Felix

From: Sahoo <Sahoo_at_Sun.COM>
Date: Wed, 20 May 2009 20:27:13 +0530

May be my understanding of our maven repositories are wrong, but AFAIK,
only artifacts produced by GlassFish build should go to

http://download.java.net/maven/glassfish/,

but, that appears not to be true. So, go ahead and use that repo.
Anyway, this is not the core of the problems being discussed here.

Thanks,
Sahoo
paulbrickell wrote:
> but, did find it in...
>
> http://download.java.net/maven/glassfish/
>
>
>
> paulbrickell wrote:
>
>> Sahoo,
>>
>> Really appreciate your help.
>>
>> I'm afraid I do not find com.sun.enterprise.hk2 in either of the
>> repositories you listed.
>>
>> Thanks,
>> Paul B.
>>
>>
>>
>> Sahoo wrote:
>>
>>> OK, thanks for clarifying about the deployment part.
>>>
>>> You should be able to do this in your code:
>>>
>>> org.jvnet.hk2.component.Habitat =
>>> org.jvnet.hk2.component.Habitat.class.cast(sCtx.getAttribute("org.glassfish.servlet.habitat"));
>>>
>>>
>>> org.jvnet.hk2.component package is part of HK2 project, so you can set
>>> up your maven dependency like this:
>>>
>>> <dependency>
>>> <groupId>com.sun.enterprise</groupId>
>>> <artifactId>hk2</artifactId>
>>> <version>RELEASE</version>
>>> <scope>provided</scope>
>>> <dependency>
>>>
>>> Ensure that you have added http://download.java.net/maven/2 and
>>> http://download.java.net/maven/1 as additional maven 2 and maven 1
>>> repositories either in your pom.xml or in your maven settings.xml.
>>>
>>> Thanks,
>>> Sahoo
>>>
>>> paulbrickell wrote:
>>>
>>>> Sahoo,
>>>>
>>>> Sorry. You are of course right about the web service deployment. It's
>>>> just a
>>>> war file deployed in glassfish (atually I am debugging in Eclipse).
>>>>
>>>> I did try just dropping the bundle in the autodeploy-bundles dir, but it
>>>> did
>>>> not seem to start (I saw none of the logging from my
>>>> BundleActivator.start
>>>> method) . I suspect I might be behind on the build. I will pick up the
>>>> latest nightly today.
>>>>
>>>> As described in my original post I have pulled the Habitat object from
>>>> the
>>>> app context. But I cannot cast it to the right type. I still do not know
>>>> an
>>>> appropriate maven dependency I can add to get it.
>>>>
>>>> Thanks for your help.
>>>>
>>>>
>>>>
>>>> Sahoo wrote:
>>>>
>>>>
>>>>> Paul,
>>>>>
>>>>> 1. You don't have to modify Felix config file. You can drop your OSGi
>>>>> bundle in domain1/autodeploy-bundles dir and it will be automatically
>>>>> started when server starts. Please use the latest nightly build as I
>>>>> fixed an important bug around this.
>>>>>
>>>>> 2. What do you mean by deploying a web service in Grizzly? Can you tell
>>>>> us how you packaged your web service and how you deployed such a thing?
>>>>> Did you really mean GlassFish or Grizzly?
>>>>>
>>>>> 3. All the registered OSGi services can be accessed via Habitat object.
>>>>> The OSGi service interface names are mapped to contract names in
>>>>> Habitat.
>>>>> e.g., if you have an OSGi service Foo.class which implements I1 and I2,
>>>>> then you can access it via Habitat.getByContract(I1 or I2.class)
>>>>>
>>>>> Thanks,
>>>>> Sahoo
>>>>>
>>>>> paulbrickell wrote:
>>>>>
>>>>>
>>>>>> I don't know if this is a silly question, but I am having some
>>>>>> fundamental
>>>>>> issues understanding the Glassfish v3 architecture and could use a
>>>>>> pointer.
>>>>>>
>>>>>> I have created a bundle and added an entry in the glassfish/felix.conf
>>>>>> e.g.
>>>>>>
>>>>>> file:///home/me/myworkspace/my-bundle/target/my-bundle-1.0-SNAPSHOT.jar
>>>>>>
>>>>>> I see this bundle starting and all is well. It opens a socket to which
>>>>>> I
>>>>>> can
>>>>>> connect and exchange data, which is nice. The reason I created a
>>>>>> bundle
>>>>>> and
>>>>>> not a H2K module is that I want it to be activated at server start-up
>>>>>> time.
>>>>>> I could not see a way of doing this with H2K. Maybe I missed
>>>>>> something.
>>>>>>
>>>>>>
>>>>>> Now I want to reference this service from a web service that I have
>>>>>> deployed
>>>>>> in Grizzly. I simply cannot figure out how to do this. The docs do not
>>>>>> really cover this, which leads me to believe I am doing something
>>>>>> fundamentally wrong.
>>>>>>
>>>>>> Do Felix and Grizzly share any kind of context or is there a static
>>>>>> way
>>>>>> to
>>>>>> access the Felix services from a web application deployed in Grizzly?
>>>>>>
>>>>>> I have tried this....
>>>>>>
>>>>>> wsContext.getMessageContext();
>>>>>> ServletContext sCtx = (ServletContext)
>>>>>> mc.get(MessageContext.SERVLET_CONTEXT);
>>>>>> Object habitat = sCtx.getAttribute("org.glassfish.servlet.habitat");
>>>>>>
>>>>>> This, I believe, gets me a reference to the H2K habitat, but my bundle
>>>>>> is
>>>>>> an
>>>>>> OSGi bundle deployed in Felix, not an H2K service. Can I navigate to
>>>>>> my
>>>>>> bundle through this habitat? Is it right to try? If so is there a
>>>>>> maven
>>>>>> dependency I need to pick up the Habitat class as I cannot seem to
>>>>>> find
>>>>>> it
>>>>>> anywhere.
>>>>>>
>>>>>> I would appreciate any pointers. TIA.
>>>>>> Paul B.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
>>>>> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
>>> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>>>
>>>
>>>
>>>
>>
>
>