geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rex Wang <rwo...@gmail.com>
Subject Re: JNDI in Geronimo 2
Date Wed, 11 Mar 2009 02:45:09 GMT
BTW
you should add
repository\org\apache\openejb\openejb-client\3.0\openejb-client-3.0.jar
to your client's build path.


Rex

2009/3/11 Rex Wang <rwonly@gmail.com>

> Russell, could you provide the whole exception strack?
>
> I can not got your problem.
>
> here is my code:
> public class Client {
>     public static void main(String[] args) throws Exception {
>
>         try {
>             Properties p = new Properties();
>             p.setProperty("java.naming.factory.initial",
> "org.apache.openejb.client.RemoteInitialContextFactory");
>             p.setProperty("java.naming.provider.url",
> "ejbd://localhost:4201");
>
>             InitialContext context = new InitialContext(p);
>
>             FirstObjectRemote obj= (FirstObjectRemote)
> context.lookup("FirstObjectBeanRemote");
>             System.out.println(obj.hello("Rex"));
>
>         } catch (Exception e) {
>             e.printStackTrace();
>         }
>
>     }
> }
>
> I try it with Tang's EJB code as follows:
> import javax.ejb.Stateless;
> @Stateless
> public class FirstObjectBean implements FirstObjectRemote{
>         public String hello(String name){
>                       return "Hello " + name;
>        }
> }
>
>
> import javax.ejb.Remote;
> @Remote
> public interface FirstObjectRemote {
>     public String hello(String name);
> }
>
>
>
> Rex
>
>
>
> 2009/3/11 Russell Collins <Russell.Collins@mclaneat.com>
>
>  Thank you Wang and Tang.  Here are the things that I have done.
>>
>>
>>
>> ·         Changed the JDK to version 1.5.0_6
>>
>> ·         Updated all of my classes to use this version of Java
>>
>> ·         Changed the provider url to ejbd://localhost:4201
>>
>>
>>
>> I get the error
>>
>>
>>
>> *java.lang.RuntimeException*: Invalid response from server: -1
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *From:* Ying Tang [mailto:yingtang1983@gmail.com]
>> *Sent:* Tuesday, March 10, 2009 3:23 AM
>>
>> *To:* user@geronimo.apache.org
>> *Subject:* Re: JNDI in Geronimo 2
>>
>>
>>
>> Yes,  should be ejbd://localhost:4201. The same as the example in the doc<http://cwiki.apache.org/confluence/display/GMOxDOC22/Deploying+and+running+EJB+application+clients>
>> .
>>
>> 2009/3/10 Rex Wang <rwonly@gmail.com>
>>
>> Tang, I believe Russell use a remote client, but not a application client.
>>
>> to Russell, try "ejbd://localhost:4201"
>>
>>
>> Rex.
>>
>> 2009/3/10 Ying Tang <yingtang1983@gmail.com>
>>
>>
>>
>> Hi Russell,
>>
>> I suggest you use JDK 1.5 instead of 1.6. It is also recommended that
>> Eclipse and Geronimo use the same Java environment.
>>
>> Please let me know if there is still any problem.
>>
>> Best Regards,
>>
>> Ying Tang
>>
>>  2009/3/10 Russell Collins <Russell.Collins@mclaneat.com>
>>
>>
>>
>> Thank you Tang.  This should be real strait forward but there has got to
>> be some reason why this is not working.  Here is the configuration that I
>> have.  This may help in solving this issue.
>>
>>
>>
>> Eclipse Ganymede
>>
>> Java 1.6..0_11
>>
>> Geronimo 2.1.2
>>
>> Geronimo 2.1.3 (tried it on both)
>>
>>
>>
>> There are a couple of other things that I tried that gave me different
>> results.
>>
>> 1.    Added a runtime dependency to the Geronimo Runtime.  This gave me a
>> different error.  It was a java runtime error that said that the response
>> from the server is: -1
>>
>> 2.    Created a client j2ee application to run my app.
>>
>>
>>
>> Basically, I am following everything in that link that you sent me.  I am
>> just getting these errors when trying to look up the object.  Any more
>> insight would be greatly appreciated.
>>
>>
>>
>>
>>
>> *From:* Ying Tang [mailto:yingtang1983@gmail.com]
>> *Sent:* Monday, March 09, 2009 11:21 PM
>> *To:* user@geronimo.apache.org
>> *Subject:* Re: JNDI in Geronimo 2
>>
>>
>>
>> Hi *Error! Filename not specified.*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.Collins@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?
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>

Mime
View raw message