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]