You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by David Jencks <da...@yahoo.com> on 2009/04/01 01:02:02 UTC
Re: Injecting EJBs into Wicket
On Mar 31, 2009, at 11:26 AM, David Blevins wrote:
> Construct the InitialContext() with the factory
> org.apache.openejb.client.LocalInitialContextFactory. Creating an
> no-arg InitialContext in a webapp will give you the spec defined
> java:comp/env namespace which only contains the entries you
> explicitly have declared via @EJB in a servlet, filter, listener,
> etc. or via an <ejb-local-ref> entry in the web.xml
That's not quite a full explanation. In a javaee app new
InitialContext() will give you the geronimo jndi tree which has a
"global" part with stuff like the transaction manager and all your
datasources bound into it, and also the java:comp component-specific
javaee tree (which will include the @EJB or xml dd specified ejb refs).
Apparently the ejbs are bound in a different unrelated global jndi
context. Personally I consider this a bug.
thanks
david jencks
>
>
> -David
>
> On Mar 31, 2009, at 7:09 AM, Maarten Billemont wrote:
>
>> Hey,
>>
>> I'm using Wicket for my web framework; and I'm trying to get my
>> EJBs injected into my Wicket code.
>>
>> My issue has very little to do with Wicket, though.
>>
>> I basically have an EJB in my.jar which is picked up by OpenEJB and
>> bound in the JNDI; and I'd like to access it from my.war (my Wicket
>> application).
>>
>> So I do this from my-war:
>> ic = new InitialContext();
>> myBeanProxy = (MyBeanLocalInterface)
>> ic.lookup(MyBeanLocalInterface.class.getName());
>>
>> This however fails with this in the logs:
>> 15:35:06,308 INFO [OpenEJB] Auto-deploying ejb
>> my.group.my.ejb.MyBeanLocalInterface: EjbDeployment(deployment-
>> id=my.jar/my.group.my.ejb.MyBeanLocalInterface)
>> 15:35:06,320 INFO [config] Loaded Module: my.group/my-deploy/1.0-
>> SNAPSHOT/ear
>> 15:35:09,095 INFO [startup] Assembling app: /usr/local/share/
>> geronimo-jetty6-javaee5-2.1.3/var/temp/geronimo-
>> deploymentUtil7334128487386261603.jar
>> 15:35:09,126 INFO [startup]
>> Jndi(name=my.group.my.ejb.MyBeanLocalInterface) --> Ejb(deployment-
>> id=my.jar/my.group.my.ejb.MyBeanLocalInterface)
>> 15:35:09,126 INFO [startup] Created Ejb(deployment-id=my.jar/
>> my.group.my.ejb.MyBeanLocalInterface, ejb-
>> name=my.group.my.ejb.MyBeanLocalInterface, container=Default
>> Stateless Container)
>> 15:35:16,824 ERROR [JavaEEInjectionListener] Unexpected Error
>> javax.naming.NameNotFoundException:
>> my.group.my.ejb.MyBeanLocalInterface
>> at
>> org
>> .apache
>> .xbean.naming.context.AbstractContext.lookup(AbstractContext.java:
>> 169)
>> at
>> org
>> .apache
>> .xbean.naming.context.AbstractContext.lookup(AbstractContext.java:
>> 603)
>> at javax.naming.InitialContext.lookup(InitialContext.java:409)
>> at
>> my
>> .group
>> .my
>> .view
>> .JavaEEInjectionListener
>> .onInstantiation(JavaEEInjectionListener.java:107)
>>
>>
>> Here's my setup:
>> my.ear (artifactId my-deploy)
>> |
>> |- my.war (artifactId my-view, contains my.group.my.view.*)
>> |
>> |- my.jar (artifactId my-controller contains my.group.my.ejb.*)
>> |
>> |- META-INF/application.xml
>> \- META-INF/geronimo-application.xml
>>
>> my.ear/application.xml:
>> <module>
>> <web>
>> <web-uri>my.war</web-uri>
>> <context-root>/</context-root>
>> </web>
>> </module>
>> <module>
>> <ejb>my.jar</ejb>
>> </module>
>> <library-directory>lib/</library-directory>
>>
>> my.ear/geronimo-application.xml:
>> <dep:environment>
>> <dep:moduleId>
>> <dep:groupId>my.group</dep:groupId>
>> <dep:artifactId>my-deploy</dep:artifactId>
>> <dep:version>1.0-SNAPSHOT</dep:version>
>> <dep:type>ear</dep:type>
>> </dep:moduleId>
>> </dep:environment>
>>
>> my.war/geronimo-web.xml:
>> <dep:environment>
>> <dep:moduleId>
>> <dep:groupId>my.group</dep:groupId>
>> <dep:artifactId>my-view</dep:artifactId>
>> <dep:version>1.0-SNAPSHOT</dep:version>
>> </dep:moduleId>
>> </dep:environment>
>>
>> <context-root>/</context-root>
>>
>> my.jar/openejb-jar.xml:
>> <properties>
>> openejb.jndiname.format = {interfaceClass}
>> </properties>
>>
>
Re: Injecting EJBs into Wicket
Posted by David Jencks <da...@yahoo.com>.
On Mar 31, 2009, at 11:31 PM, Maarten Billemont wrote:
>
> On 01 Apr 2009, at 01:02, David Jencks wrote:
>
>> Apparently the ejbs are bound in a different unrelated global jndi
>> context. Personally I consider this a bug.
>
> Should I file a bug report on this?
I don't think its necessary..... there's already GERONIMO-4599 which I
think is the same or closely related problem. I'm doing a little
investigation while recovering from extreme jet lag and a cold....
hopefully this will be easy to fix.
thanks
david jencks
Re: Injecting EJBs into Wicket
Posted by Maarten Billemont <lh...@gmail.com>.
On 01 Apr 2009, at 01:02, David Jencks wrote:
> Apparently the ejbs are bound in a different unrelated global jndi
> context. Personally I consider this a bug.
Should I file a bug report on this?