Not there yet.

This command:

java -classpath 
/usr/local/jboss/lib/ext/ejb.jar:/usr/local/jboss/client/jnp-client.jar:/usr 
/local/jboss/client/jboss-client.jar:. com.titan.travelagent.jBossClient_1

...gives this error:

java.rmi.ServerException: RemoteException occurred in server thread; nested 
exception is:
         java.rmi.ServerException: Exception occurred; nested exception is:
         javax.ejb.EJBException
java.rmi.ServerException: Exception occurred; nested exception is:
         javax.ejb.EJBException
javax.ejb.EJBException
         at 
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Stream
RemoteCall.java:245)
         at 
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
         at 
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker_Stub.invoke(Un
known Source)
         at 
org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(St
atelessSessionProxy.java:87)
         at $Proxy1.listCabins(Unknown Source)
         at com.titan.travelagent.jBossClient_1.main(jBossClient_1.java:48)


Here's the client listing, jBossClient_1.java:


package com.titan.travelagent;

import com.titan.cabin.CabinHome;
import com.titan.cabin.Cabin;
import com.titan.cabin.CabinPK;

import javax.naming.InitialContext;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.ejb.CreateException;
import java.rmi.RemoteException;
import java.util.Properties;

public class jBossClient_1 {
   public static int SHIP_ID = 1;
   public static int BED_COUNT = 3;

   public static void main(String [] args){
     try {
/* COMMENTED OUT FOR jBoss
       Context jndiContext = getInitialContext();
       Object obj = jndiContext.lookup("ejb/TravelAgentHome");
COMMENTED OUT FOR jBoss */

/* BEGIN SECTION ADDED FOR jBoss */
       // Set up the naming provider; this may not always be necessary, 
depending

       // on how your Java system is configured.
       System.setProperty("java.naming.factory.initial",
         "org.jnp.interfaces.NamingContextFactory");
       System.setProperty("java.naming.provider.url",
         "localhost:1099");

       // Get a naming context
       InitialContext jndiContext = new InitialContext();

       // Get a reference to the TravelAgentBean
       Object obj  = jndiContext.lookup("TravelAgentBean");

       // Get a reference from this to the Bean's Home interface

/* END SECTION ADDED FOR jBoss */

       TravelAgentHome home = (TravelAgentHome) 
javax.rmi.PortableRemoteObject.narrow(obj, TravelAgentHome.class);

       TravelAgent reserve = home.create();

       // Get a list of all cabins on ship 1 with a bed count of 3.
       String list [] = reserve.listCabins(SHIP_ID,BED_COUNT); // LINE 48 HERE!

       for(int i = 0; i < list.length; i++){
         System.out.println(list[i]);
       }

     } catch(java.rmi.RemoteException re){re.printStackTrace();}
       catch(Throwable t){t.printStackTrace();}
   }
   static public Context getInitialContext() throws Exception {
     Properties p = new Properties();
     // ... Specify the JNDI properties specific to the vendor.
     return new InitialContext();
   }
}


So the client compiles and runs, but after it creates the connection with 
home.create() (which succeeds), the next call to the bean,
       String list [] = reserve.listCabins(SHIP_ID,BED_COUNT); // LINE 48 HERE!
fails.

It seems strange to lookup TravelAgentBean to get the home interface. Maybe 
that's my problem.

Any suggestions?

-- Ken Jenks, http://abiblion.com/

    Tools for reading.


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

Reply via email to