我认为是你引用的jndi由问题。如果你的db Jndi-name 是这样的话:
<jndi-name>bank2DS</jndi-name>可以用在程序中使用如下字符窜进行引用:
private String JDBC_DATASOURCE = "java:comp/env/jdbc/dbBank";下面是我做练习时候用来访问EJB的客户端程序。
public static void main(String[] args) {
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "localhost:1099");
env.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
try {
Context context = new InitialContext(env);
Object ref = context.lookup("com.fts.tutorial.ejb.bank.Bank");
BankHome home = (BankHome) PortableRemoteObject.narrow(ref, BankHome.class);
Bank bank = home.create();
System.out.println(bank.getBalance());
} catch (NamingException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (CreateException e) {
e.printStackTrace();
}
}