Hi Russell,

I tried your example on Geronimo 2.1.4.

1. I renamed the implementation class  as FirstObjectBean.  A bit different
from your code:
---------------------------------------------------****

@Stateless

*public* *class* *FirstObjectBean* *implements* *FirstObjectRemote* { import
**

*   public* *String* *hello*(*String* name){

                  *return* "Hello " + name;

   }
}
---------------------------------------------------

2.  In the application client that referece the EJB, I used
---------------------------------------------------
*import ejb.FirstObjectRemote;*
...
*FirstObjectRemote* firstObject = (*FirstObjectRemote*)context.*lookup*("
FirstObjectBeanRemote");
---------------------------------------------------
3. Add the EJB project to the build path of the application client project.
4. Add the two projects to the Geronimo server, and run the application
client.

The application works well and the "Hello Russel" message shows up.

For more detailed information, please refer to:
http://cwiki.apache.org/confluence/display/GMOxDOC22/Deploying+and+running+EJB+application+clients

Hope this helps.


Best Regards,

Ying Tang  (Sophia)


2009/3/9 Russell Collins <russell.coll...@mclaneat.com>

>  Hello.  I am new to the list, new to EJB 3.0 and new to Geronimo 2.  I am
> pretty sure I understand all of the concepts but I am having an issue with a
> JNDI lookup in Geronimo.  I have created a Bean and it looks as follows.
>
>
>
> Interface:
>
>
>
> @Remote
>
> *public* *interface* *FirstObjectRemote* {
>
>       *public* *String* *hello*(*String* name);
>
> }
>
>
>
> Class:
>
>
>
> @Stateless
>
> *public* *class* *FirstObject* *implements* *FirstObjectRemote* {
>
>
>
>    *public* *FirstObject*() {
>
>    }
>
>
>
>    @Override
>
> *   public* *String* *hello*(*String* name){
>
>                   *return* "Hello " + name;
>
>    }
>
>
>
> }
>
>
>
> Everything deploys just fine (at lease I think it does).  I created a test
> class:
>
>
>
>
>
> *public* *class* *TheClass*
>
> {           **
>
> *public* *static* *void* *main*(*String*[] args)
>
>       {
>
>             *Properties* prop=*new* *Properties*();
>
>             prop.*put*(*Context*.*INITIAL_CONTEXT_FACTORY*,
> "org.apache.openejb.client.RemoteInitialContextFactory");
>
>             prop.*put*(*Context*.*PROVIDER_URL*, "ejbd://localhost:1099");
>
>
>
>             *try*{
>
>                   *Context* context = *new* *InitialContext*(prop);
>
>                   *FirstObjectRemote* firstObject = (*FirstObjectRemote*
> )context.*lookup*("FirstObjectRemote");
>
>                   *System*.*out*.*println*(firstObject.*hello*("Russell"
> ));
>
>             }
>
>             *catch*(*Exception* ex){
>
>                   *System*.*out*.*println*(ex.*toString*());
>
>             }
>
>
>
>       }
>
> }
>
>
>
>
>
> I get an error I when trying to run this.  The error that comes back is:
>
>
>
>
>
> *javax.naming.NamingException*: Cannot lookup '/FirstObjectRemote'. [Root
> exception is *java.rmi.RemoteException*: Error while communicating with
> server: ; nested exception is:
>
>       java.lang.NoClassDefFoundError: javax/transaction/RollbackException]
>
>
>
>
>
>
>
> What am I missing?
>

Reply via email to