Yes it does.
Thanks for the prompt reply. I tried it and it did not work for me. However, I am able to look it up via context. Here is the scenario:
My application is EAR based. I have an ejb jar, a web war plus a bunch of libraries. I am trying to lookup the ejb that resides in ejb jar
from a class in web war. I have set the dependency (of ejb jar) in the manifest of war. I am not sure about the syntax though.
Name of the EAR is infolinkApp.ear
Name of the JAR is infolink-ejb.jar
Name of the WAR is infolink-web.war
Manifest entry in war file is deployment.infolinkApp.ear.infolink-ejb.jar
The EJB in question: PlaceQueryRemote (interface) and PlaceQueryRemoteBean (implementation)
This is how I am trying to reference it:
@EJB(lookup = "java:app/infolink-ejb/PlaceQueryRemoteBean") PlaceQueryRemoteBean pqr;
I tried @EJB(lookup = "java:global/infolinkApp/infolink-ejb/PlaceQueryRemoteBean") PlaceQueryRemoteBean pqr;
as well. In both the cases I get a NULL for pqr.
Thanks in advance for your inputs.
Jaikiran will be able to explain you better... I am just trying to add some of my findings.
The syntax for the EJB Global JNDI is as following:
For App Scope it is as following:
So your jndi name does not look good it has missing ' ! ' (missing exclaimation mark)
Also please refer to the following link: http://middlewaremagic.com/jboss/?p=822
Also as soon as you deploy your EJBs successfully on JBoss AS you will be able to see their actual JNDI names in the JBoss Console output (STDOUT) something as following:
Thaks Roberto. Let me give it a spin and see what we get.
Tried with the ! plus fully qualified class name of the interface. Still no joy. Tried both global and app versions.
I'm curious as to why you're using remote interfaces in a co-located ejb-jar/war situation.
We have client applications that call in the EJBs across the wire. In this particular test environment that I was referring to, it is a local reference but I did not want to change the server code just for the test.
1 of 1 people found this helpful
OK, in an example I posted in Two Different EARs(same JVM), looking each other ejb's throws ClassNotFoundException
this style of lookup
is working fine. Maybe you can find some clues there?
Note that you must use the 7.1 beta for this, as I don't think 7.0.x supports remote EJBs.
I looked at the attachments you have posted Steve. The only difference I could see is that the @EJB(lookup = "xxx") annotation is placed in a servlet class in your case and it is in a POJO (inside the WAR file) in my case. Do you think that the injection of the ejb reference takes place only inside of classes that are EJBs and SERVLETs ( I mean container managed entities)? BTW, I am using 7.1.0.Beta1
I did a simple test by placing the annotation inside a servlet class and sure enough, the injection takes place there. So the annotations work only inside of the entities managed by the container. I mean at least the @EJB annotation. If anybody has more inputs on this you are more than welcome to post them. I appreciate all the help.
This will happen unless you have a META-INF/beans.xml file in your war file for CDI to work.
Thank you Steve. When I added beans.xml to WEB-INF directory of my war, the deployment crapped out with errors that siad Can't find resource bundle for ch.qos.cal10n.util.<SomeClass>. I do not remember the name of the class exactly. I am away from my desk right now. I looked at the modules that are bundled with 7.1.0.Beta1 and saw ch.qos.cal10n but there is no ch.qos.cal10n.util in there. What am I missing?
At this point we need more information such as stack traces and details of your deployment