客户测试程序贴错啦,应该如下:import filemanager.*;
import javax.ejb.*;
import javax.naming.*;
import java.io.*;
import javax.sql.*;public class FileManagerClient {

public static void main(String[] args) {

try { InitialContext ctx = new InitialContext(); Object objRef = ctx.lookup("filemanager"); FileManagerHome home = (FileManagerHome)javax.rmi.PortableRemoteObject.narrow(
objRef, FileManagerHome.class);            DataSource ds = (DataSource)ctx.lookup("jdbc/Oracle");
            Connection conn = ds.getConnection();
                        
} catch (Exception e) {
e.printStackTrace();
}
}
}
可以取得DataSource,但从DataSource取得联接时提示出错:
No local string for datasource.wrongclient
java.sql.SQLException:
        at com.sun.enterprise.resource.JdbcDataSource.getConnection(JdbcDataSour
ce.java:44)
        at FileManagerClient.main(FileManagerClient.java:33)

解决方案 »

  1.   

    DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/Oracle");j2ee ri中资源映射至JNDI的格式:
    java:comp/env/subContext/resourceName
      

  2.   

    1,启动J2EE服务;
    2,启动DEPLOYTOOL;
    3,TOOLS--SERVERCONFIG
    4,STANDARD--ADD DRIVERCLASS--oracle.jdbc.driver.OracleDriver;
    5,Add DataSource--jdbc/oracle...jdbc:oracle:thin....
      

  3.   

    InitialContext ic = new InitialContext();
    ds = (DataSource)ic.lookup(JNDINames.DATASOURCE);public static String DATASOURCE = "java:comp/env/jdbc/Oracle";
      

  4.   

    DataSource ds = (DataSource)ctx.lookup("jdbc/Oracle");配置过程是正确的,只是这句话有问题,这里是取不出数据源的