Hi James,

Now my Hello World works.  There were two problems,  first, the naming in
the XML files weren't clear to me until your mail,  and after fixing that -
naming it PossessedBean :) - I had a another Exception which was due to not
including the jboss-client.jar in my CLASSPATH.

Thanks for your time, all of you.

______________________________________s_p_r_a_y_
Dr. Pär Fornland

> -----Ursprungligt meddelande-----
> Från: James Cook [mailto:[EMAIL PROTECTED]]
> Skickat: den 8 mars 2001 04:46
> Till: JBoss-User
> Ämne: RE: [jBoss-User] ouch, newbie trouble
> 
> 
> Based on your ejb-jar.xml file:
> 
> <ejb-jar>
>  <description>Lek med beans</description>
>  <display-name>TestAvBeans</display-name>
>  <enterprise-beans>
>   <session>
>    <ejb-name>parfo.Hello</ejb-name>
>    <home>parfo.HelloHome</home>
>    <remote>parfo.Hello</remote>
>    <ejb-class>parfo.HelloBean</ejb-class>
>    <session-type>Stateless</session-type>
>    <transaction-type>Bean</transaction-type>
>   </session>
>  </enterprise-beans>
> </ejb-jar>
> 
> From a client application (note the *client*), you would get 
> a reference to
> the the EJBHome using:
> 
>     Object boundObject = context.lookup("parfo.Hello");
>     HelloHome helloHome = (HelloHome)PortableRemoteObject.narrow(
>         boundObject, HelloHome.class);
> 
> That is assuming that you don't override the jndi name for 
> the bean in a
> jboss.xml file. I don't believe it is spec-compliant (IIRC) to use the
> <ejb-name> as the jndi-name, but jBoss does so as a 
> simplification step.
> Other servers require you to specify the jndi name for a bean 
> in another
> "proprietary" deployment descriptor. For jBoss, this 
> proprietary file is
> called jboss.xml:
> 
>     <jboss>
>         <enterprise-beans>
>             <session>
>                 <ejb-name>parfo.Hello</ejb-name>
>                 <jndi-name>parfo/Hello</jndi-name>
>             </session>
>         </enterprise-beans>
>     </jboss>
> 
> With this file deployed with your bean, your lookup code 
> would be changed
> to:
> 
>     Object boundObject = context.lookup("parfo/Hello");
> 
> So, perhaps you tried all of these options and it still doesn't work.
> Perhaps there is a subtle setup error, configuration error, 
> or a bug in the
> product. Don't know. I have always used slashes to separate my naming
> contexts, but many people use periods as you have. I can't 
> imagine that this
> is the source of a bug.
> 
> jim
> 
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED]]On Behalf Of Pär Fornland
> > Sent: Wednesday, March 07, 2001 7:21 PM
> > To: 'JBoss-User'
> > Subject: [jBoss-User] ouch, newbie trouble
> >
> >
> > Hi guys,
> >
> > I am investigating how useful EJB can be for the product for
> > which I am the
> > architect.  I know just the big picture of EJB.  Downloaded 
> jBoss,  and
> > guess how pleased I was to see it running immediately.  Wrote a
> > simple Hello
> > World example,  and could _deploy_ it successfully immediately too.
> > Happiness!
> >
> > Running Solaris,  JDK1.3,  jBoss-2.0-FINAL.
> >
> > Enter: dark clouds
> >
> > I have been trying for DAYS now to run my client.  I've tried
> > modifying the
> > ejb-jar.xml.  I've tried changing names of packages.  I've 
> tried adding a
> > jboss.xml file.  I've tried many ways to write the client.  
> It just won't
> > run.  (I've searched the archive of this list,  but didn't 
> find anything
> > similar.)
> >
> > I get this when I deploy it:
> > +++++++++++++++
> > [Auto deploy] Auto deploy of
> > file:/info/dev-parfo/jBoss-2.0_FINAL/deploy/HelloWorld.ja
> > r
> > [J2EE Deployer] Stopping module HelloWorld.jar
> > [Container factory]
> > Undeploying:file:/info/dev-parfo/jBoss-2.0_FINAL/bin/../tmp/deploy
> > /HelloWorl
> > d.jar/ejb1020.jar
> > [Container factory] Undeployed application:
> > file:/info/dev-parfo/jBoss-2.0_FINAL/bin/../tmp/deploy/HelloWorld.
> > jar/ejb102
> > 0.jar
> > [J2EE Deployer] Destroying application HelloWorld.jar
> > [J2EE Deployer] deployment.cfg file deleted.
> > [J2EE Deployer] File tree
> > 
> file:/info/dev-parfo/jBoss-2.0_FINAL/tmp/deploy/HelloWorld.jar
>  deleted.
> > [J2EE Deployer] Deploy J2EE application:
> > file:/info/dev-parfo/jBoss-2.0_FINAL/deploy/HelloWorld.jar
> > [J2EE Deployer] Create application HelloWorld.jar
> > [J2EE Deployer] Installing EJB package: HelloWorld.jar
> > [J2EE Deployer] Starting module HelloWorld.jar
> > [Container factory]
> > Deploying:file:/info/dev-parfo/jBoss-2.0_FINAL/bin/../tmp/deploy/H
> > elloWorld.
> > jar/ejb1022.jar
> > [Verifier] Verifying
> > file:/info/dev-parfo/jBoss-2.0_FINAL/bin/../tmp/deploy/HelloWorld.
> > jar/ejb102
> > 2.jar
> > [Container factory] Deploying parfo.Hello
> > [Container factory] Deployed application:
> > file:/info/dev-parfo/jBoss-2.0_FINAL/bin/../tmp/deploy/HelloWorld.
> > jar/ejb102
> > 2.jar
> > [J2EE Deployer] J2EE application:
> > file:/info/dev-parfo/jBoss-2.0_FINAL/deploy/HelloWorld.jar 
> is deployed.
> > +++++++++++++++++
> >
> >
> > Is that correct?
> >
> > Then when I run my client,  I get this error:
> > ++++++++++++++++++
> > javax.naming.NameNotFoundException: parfo.HelloHome not bound
> >         at
> > sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Str
> > eamRemoteC
> > all.java:245)
> >         at
> > 
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCal
> l.java:220)
> >         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
> >         at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
> >         at 
> org.jnp.interfaces.NamingContext.lookup(NamingContext.java:295)
> >         at 
> org.jnp.interfaces.NamingContext.lookup(NamingContext.java:279)
> >         at 
> javax.naming.InitialContext.lookup(InitialContext.java:350)
> >         at HelloClient.main(HelloClient.java:23)
> > +++++++++++++++++
> >
> >
> > My ejb-jar.xml looks like this:
> > +++++++++++++
> > <?xml version="1.0" encoding="Cp1252"?>
> > <ejb-jar>
> >  <description>Lek med beans</description>
> >  <display-name>TestAvBeans</display-name>
> >  <enterprise-beans>
> >   <session>
> >    <ejb-name>parfo.Hello</ejb-name>
> >    <home>parfo.HelloHome</home>
> >    <remote>parfo.Hello</remote>
> >    <ejb-class>parfo.HelloBean</ejb-class>
> >    <session-type>Stateless</session-type>
> >    <transaction-type>Bean</transaction-type>
> >   </session>
> >  </enterprise-beans>
> > </ejb-jar>
> > ++++++++++++++++++
> >
> >
> > My client code looks like this:
> > ++++++++++++++
> > import parfo.*;
> >
> > import javax.ejb.*;
> > import javax.naming.*;
> > import javax.rmi.*;
> > import java.util.*;
> >
> > public class HelloClient {
> >     public static void main(String[] args) {
> >         try {
> >             System.setProperty("java.naming.factory.initial",
> >                                
> "org.jnp.interfaces.NamingContextFactory");
> >             System.setProperty("java.naming.provider.url",
> >                                "localhost:1099");
> >
> >             Properties props = System.getProperties();
> >             System.out.println("Got props");
> >
> >             Context ctx = new InitialContext(props);
> >             System.out.println("Got context");
> >
> >             Context context = new InitialContext();
> >             Object boundObject = 
> context.lookup("java:parfo.HelloHome");
> >             HelloHome helloHome = (HelloHome) 
> PortableRemoteObject.narrow(
> >                 boundObject, HelloHome.class);
> >             Hello _hello = helloHome.create();
> >
> >             HelloHome home;
> >             home = (HelloHome) ctx.lookup("java:parfo/HelloHome");
> >             System.out.println("Got home object #1");
> >
> >             home = (HelloHome) ctx.lookup("HelloHome");
> >             System.out.println("Got home object #2");
> >
> >             home = (HelloHome) PortableRemoteObject.narrow(
> >                 ctx, HelloHome.class);
> >             System.out.println("Got home object #3");
> >
> >             Hello hello = home.create();
> >
> >             System.out.println(hello.hello());
> >
> >             hello.remove();
> >         }
> >         catch (Exception e) {
> >             e.printStackTrace();
> >         }
> >     }
> > }
> > ++++++++++++
> >
> > and even though I try different ways to get the reference 
> to the Home
> > object,  none of them work (I comment out different ones to test.)
> >
> > Any ideas?
> >
> > Kind regards
> > Pär
> >
> >
> > ______________________________________s_p_r_a_y_
> > Dr. Pär Fornland
> >
> >
> >
> > --
> > --------------------------------------------------------------
> > To subscribe:        [EMAIL PROTECTED]
> > To unsubscribe:      [EMAIL PROTECTED]
> >
> >
> 
> 
> 
> --
> --------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> 
> 


--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]

Reply via email to