If the ejb jar is packaged in the same ear, could you try whether the configuration below works for you :
<ejb-ref> <ref-name>ejb/**TestEJB</ref-name> <ejb-link>bob.ejb#TestEJB</ejb-link> </ejb-ref> 2012/11/6 Michael Baylis <maill...@baylishome.me.uk> > Hi Folks, > Help!!! > > Whenever I start to use Wink with EJBs I always seem to get totally > confused wth JNDI lookups, please could you resolve this once and for all > for me. > > I have a restful service that would like to do a call to an EJB. I have > tried many combinations, but the following is what I have pieced together > from the docs:- > > I am using Geronimo 3.0.0, and as I understand it EJB injection does not > work in Wink (in Geronimo or IBM WAS 8.0) as the service class is loaded > but the rest servlet, so I have to use a jndi lookup:- > > bob.ear has bob.web, the restful service. > bob.ejb is seperate (but I would like it in the ear). > > bob.ejb has TestEJB with a @Remote and @Local which results in:- > > 2012-11-05 22:21:45,603 INFO [startup] Assembling app: > C:\Users\mikebyls\software\**eclipse\default\bob.ejb\1.0\**jar > 2012-11-05 22:21:45,619 INFO [startup] Jndi(name=TestEJBLocal) --> > Ejb(deployment-id=bob.ejb.jar/**TestEJB) > 2012-11-05 22:21:45,619 INFO [startup] > Jndi(name=global/bob.ejb/**TestEJB!bob.ejb.TestEJBLocal) > --> Ejb(deployment-id=bob.ejb.jar/**TestEJB) > 2012-11-05 22:21:45,619 INFO [startup] Jndi(name=TestEJBRemote) --> > Ejb(deployment-id=bob.ejb.jar/**TestEJB) > 2012-11-05 22:21:45,619 INFO [startup] > Jndi(name=global/bob.ejb/**TestEJB!bob.ejb.TestEJBRemote) > --> Ejb(deployment-id=bob.ejb.jar/**TestEJB) > 2012-11-05 22:21:45,619 INFO [startup] Jndi(name=global/bob.ejb/**TestEJB) > --> Ejb(deployment-id=bob.ejb.jar/**TestEJB) > > My bob.web deployment is:- > <web:web-app xmlns:app="http://geronimo.**apache.org/xml/ns/j2ee/** > application-2.0 <http://geronimo.apache.org/xml/ns/j2ee/application-2.0>" > xmlns:bp="http://www.osgi.org/**xmlns/blueprint/v1.0.0<http://www.osgi.org/xmlns/blueprint/v1.0.0>" > xmlns:client="http://geronimo.**apache.org/xml/ns/j2ee/** > application-client-2.0<http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0>" > xmlns:conn="http://geronimo.**apache.org/xml/ns/j2ee/**connector-1.2<http://geronimo.apache.org/xml/ns/j2ee/connector-1.2>" > xmlns:dep="http://geronimo.**apache.org/xml/ns/deployment-**1.2<http://geronimo.apache.org/xml/ns/deployment-1.2>" > xmlns:ejb="http://openejb.**apache.org/xml/ns/openejb-jar-**2.2<http://openejb.apache.org/xml/ns/openejb-jar-2.2>" > xmlns:jaspi="http://geronimo.**apache.org/xml/ns/geronimo-**jaspi<http://geronimo.apache.org/xml/ns/geronimo-jaspi>" > xmlns:log="http://geronimo.**apache.org/xml/ns/loginconfig-**2.0<http://geronimo.apache.org/xml/ns/loginconfig-2.0>" > xmlns:name="http://geronimo.**apache.org/xml/ns/naming-1.2<http://geronimo.apache.org/xml/ns/naming-1.2>" > xmlns:pers="http://java.sun.**com/xml/ns/persistence<http://java.sun.com/xml/ns/persistence>" > xmlns:pkgen="http://openejb.**apache.org/xml/ns/pkgen-2.1<http://openejb.apache.org/xml/ns/pkgen-2.1>" > xmlns:sec="http://geronimo.**apache.org/xml/ns/security-2.0<http://geronimo.apache.org/xml/ns/security-2.0> > **" > xmlns:web="http://geronimo.**apache.org/xml/ns/j2ee/web-2.**0.1<http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1> > "> > <dep:environment> > <dep:moduleId> > <dep:groupId>default</dep:**groupId> > <dep:artifactId>bob.web</dep:**artifactId> > <dep:version>1.0</dep:version> > <dep:type>car</dep:type> > </dep:moduleId> > <dep:dependencies> > <dep:dependency> > <dep:groupId>default</dep:**groupId> > <dep:artifactId>bob.ejb</dep:**artifactId> > <dep:version>1.0</dep:version> > <dep:type>jar</dep:type> > </dep:dependency> > </dep:dependencies> > </dep:environment> > <web:context-root>/bob</web:**context-root> > <name:ejb-ref> > <name:ref-name>ejb/TestEJB</**name:ref-name> > <name:ejb-link>TestEJBRemote</**name:ejb-link> > </name:ejb-ref> > </web:web-app> > > > My Test Restful service is:- > > @Path("test") > public class Test1 { > > @GET > @Produces(MediaType.TEXT_**PLAIN) > public String get() throws NamingException { > > InitialContext ic = new InitialContext(); > > Object x = ic.lookup("java:comp/env/ejb/**TestEJB"); > > return "boo"; > } > > } > > > I have tried allsorts of combinations with the name, with the ejb in the > same ear, using local and remote interfaces, etc. Ive googled, but cant > seem to find a combination that willwork. > I have also tried different "<name:ejb-link>TestEJBRemote<**/name:ejb-link>" > names. > > Please put me out of my misery. > > Would it be possible to give me a solution that would work with the EJB > module in the same EAR as the WEB module please. > > Regards, > > Michael > -- Ivan