geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shawn Jiang <genspr...@gmail.com>
Subject Re: EJB in Apache Geronimo : Java client invokation
Date Mon, 24 May 2010 14:09:57 GMT
The provide url should be like this:

props.setProperty("java.naming.provider.url", "ejbd:"+hostName+":"+port);

On Mon, May 24, 2010 at 8:01 PM, zecas <zzzz_mmmm@hotmail.com> wrote:

>
> Hi,
>
> I'm trying to connect a standalone java client application to an EJB in
> Apache Geronimo, but with no success so far.
>
> It's a starting project so I can learn something about EJB and remote
> invocation, and ... well, I'll put some info and hope someone can put some
> light on the matter.
>
> My Geronimo has the following ports, which are displayed on console, when
> starting up:
>
>
>  Listening on Ports:
>       0 0.0.0.0   Derby Connector
>      80 0.0.0.0   Tomcat Connector HTTP BIO HTTP
>    1099 0.0.0.0   RMI Naming
>    1150 127.0.0.1 CORBA Naming Service
>    2001 127.0.0.1 OpenEJB ORB Adapter
>    4201 0.0.0.0   OpenEJB Daemon
>    6882 127.0.0.1 OpenEJB ORB Adapter
>    8009 0.0.0.0   Tomcat Connector AJP AJP
>    8443 0.0.0.0   Tomcat Connector HTTPS BIO HTTPS
>    9999 0.0.0.0   JMX Remoting Connector
>   61613 0.0.0.0   ActiveMQ Transport Connector
>   61616 0.0.0.0   ActiveMQ Transport Connector
>
>
> I'm working with Apache Geronimo 2.1.2, in a windows system, installed
> locally.
>
> My EJB3 has the following definition:
>
>
> @Stateful(name="test-bean", mappedName="test-bean-map")
> public class TestBean implements TestLocal, TestRemote {
>
>    public String hello(String user) {
>        return "Hello " + user + ", welcome to this EJB!";
>    }
>
>    public List getList(String user) {
>        ...
>    }
>
> }
>
>
> And the interfaces, which are part of the EJB client JAR:
>
>
> @Remote
> public interface TestRemote {
>
>    public String hello(String user);
>
> }
>
> @Local
> public interface TestLocal {
>
>    public List getList(String user);
>
> }
>
>
> The EAR has the EJB and a WAR module that successfully injects TestLocal
> and
> uses it.
>
> Now I've started a Java project from scratch, and inside a runnable class
> main method I do something like:
>
>
>        String hostName = "localhost";
>        String port = "4201";
>
>        Properties props = new Properties();
>
>        props.setProperty("java.naming.factory.initial",
> "org.openejb.client.RemoteInitialContextFactory");
>        props.setProperty("java.naming.provider.url", hostName+":"+port);
> //        props.setProperty("java.naming.security.principal", "username");
> //        props.setProperty("java.naming.security.credentials", "passwd");
>
>        Context ic = null;
>        try {
>            ic = new InitialContext(props);
>
>            // java:comp/env/
>            // @Stateful(name="test-bean", mappedName="test-bean-map")
>
>            TestRemote testBean = (TestRemote) PortableRemoteObject.narrow(
>                    ic.lookup("test-bean"),
>                    TestRemote.class
>                    );
>
>            String result = testBean.hello( "peter" );
>            log( result );
>
>        } catch(Throwable ex) {
>            ex.printStackTrace();
>        } finally {
>            if( ic!=null ) {
>                ic.close();
>            }
>        }
>
>
> The result:
>
>
> java.lang.RuntimeException: Invalid response from server: -1
>    at org.apache.openejb.client.JNDIContext.lookup(JNDIContext.java:277)
>    at javax.naming.InitialContext.lookup(InitialContext.java:392)
>
>
> I've tried using ports 1099, 1150 and 4201, with the same result. Shouldn't
> I use port 4201 0.0.0.0   OpenEJB Daemon?
>
> So what am I missing here?
>
> In apache geronimo, where am I suppose to check the jndi name configured? I
> can't seem to find it ... although it works on the webapp that goes with
> the
> EJB (on the same EAR).
>
> I've deployed the EAR to Geronimo, without any ejb descriptor and no
> geronimo plan descriptor. The EJB uses annotations. But the webapp uses the
> injected EJB dependency, so I assume it is properly configured.
>
> Also, can anyone tell me where I should look for the available EJBs? In
> JBoss I can check a tree of JNDI entries, and the EJB nammings can be found
> there, but in Geronimo I cannot find this EJB name ... I searched in
> console->Debug Views (JMX and JNDI) they both present a tree, but I didn't
> find the EJB entry that was deployed.
>
>
>
> Thanks
> --
> View this message in context:
> http://apache-geronimo.328035.n3.nabble.com/EJB-in-Apache-Geronimo-Java-client-invokation-tp839481p839481.html
> Sent from the Users mailing list archive at Nabble.com.
>



-- 
Shawn

Mime
View raw message