I have not checked the detailed things, while from the design side, we only use vendor specific deployment plan while the spec plan could not work well. The server will try its best to find the proper references, but sometimes, extra configurations may require, e.g. There are two beans with the same name.
2012/11/8 <[email protected]> > ** > Hi Ivan, > > That worked, thank you. Your <ejb-local-ref> was defined in the web.xml, > whilst mine was in the geronimo-web.xml using the proper editor. > > Why does this make a difference? Is it a bug? > > Cheers, > > Michael > Sent from my BlackBerry® wireless device > ------------------------------ > *From: * Ivan <[email protected]> > *Date: *Wed, 7 Nov 2012 22:04:05 +0800 > *To: *<[email protected]> > *ReplyTo: * [email protected] > *Subject: *Re: Geronimo, Wink and JNDI > > Just have a try, the codes below work for me. I packaged the ejb and war > in the ear. > > TestEJB.jar > > package org.apache.geronimo.test; > > import javax.ejb.Local; > > @Local > public interface TestBeanInterface { > > public void test(); > } > > package org.apache.geronimo.test; > > import javax.ejb.Stateless; > > /** > * Session Bean implementation class TestBean > */ > @Stateless(name = "TestBean") > public class TestBean implements TestBeanInterface { > > /** > * Default constructor. > */ > public TestBean() { > // TODO Auto-generated constructor stub > } > > public void test() { > > } > > } > > TestWeb.war > > <?xml version="1.0" encoding="UTF-8"?> > <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://java.sun.com/xml/ns/javaee > http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> > > <ejb-local-ref> > <ejb-ref-name>ejb/TestBean</ejb-ref-name> > <ejb-ref-type>Session</ejb-ref-type> > <local>org.apache.geronimo.test.TestBeanInterface</local> > <ejb-link>TestEJB.jar#TestBean</ejb-link> > </ejb-local-ref> > </web-app> > > Hope it helps. > > 2012/11/7 Michael Baylis <[email protected]> > >> Hi Ivan, >> I am afraid it didn't make a difference. >> >> I've tried:- >> >> Object x = ic.lookup("java:comp/env/ejb/TestEJB"); >> Object x = ic.lookup("ejb/TestEJB"); >> >> with the ejb-ref you provided. >> >> As I am using EJB 3.1 and annotations, I didn't put anything in >> ejb-jar.xml or openejb-jar.xml. Does anything need to go in there? >> >> Cheers, >> >> Michael >> >> >> On 06/11/2012 14:44, Ivan wrote: >> >> 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 <[email protected]> >> >>> 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" xmlns:bp=" >>> http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:client=" >>> http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0" >>> xmlns:conn="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2" >>> xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2" xmlns:ejb=" >>> http://openejb.apache.org/xml/ns/openejb-jar-2.2" xmlns:jaspi=" >>> http://geronimo.apache.org/xml/ns/geronimo-jaspi" xmlns:log=" >>> http://geronimo.apache.org/xml/ns/loginconfig-2.0" xmlns:name=" >>> http://geronimo.apache.org/xml/ns/naming-1.2" xmlns:pers=" >>> http://java.sun.com/xml/ns/persistence" xmlns:pkgen=" >>> http://openejb.apache.org/xml/ns/pkgen-2.1" xmlns:sec=" >>> http://geronimo.apache.org/xml/ns/security-2.0" xmlns:web=" >>> 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 >> >> >> > > > -- > Ivan > -- Ivan
