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

Reply via email to