SessionBean返回的对象必须是符合IIOP和RMI规范的类型, Connection对象可能不符合此规范。
另,让Session Bean 返回Connection对象供Client使用,不是一个好的设计

解决方案 »

  1.   

    同意楼上的。为什么要用SessionBean得到Connection对象再返回Client呢?就算可以的话,也不提倡啊。费力不讨好的活。
      

  2.   

    client最好不要直接跟数据库挂上勾
      

  3.   

    我的情况是这个样子,有一个已经定义的datasource,现在有一个一般的class 下称为A(非ejb),我想用已定义的datasource生成一个connection对象。在A中直接用这个datasource的话,报错是miss node -- jdbc/shcd(这个是datasource的名字)。
    如果想利用这个datasource的话,有什么好方法吗?
      

  4.   

    好方法就是在A的操作改在ejb中进行
      

  5.   

    public class ConnDataBase { private String connPool = "java:/数据源名称";
    private HashMap m_env; private Context ctx;
    private InitialContext ictx;
    private DataSource ds; public DataSource getJbossJndi(String sURL) {
    try {
    m_env = new HashMap();
    m_env.put(
    "java.naming.factory.initial",
    "org.jnp.interfaces.NamingContextFactory");
    m_env.put("java.naming.provider.url", "t3://127.0.0.1");
    ctx = new InitialContext(m_env);
    this.ds = (DataSource) ctx.lookup(sURL);
    }
    catch (Exception e) {
    System.err.println(e.toString());
    }
    finally {
    return this.ds;
    }
    } /**
     * @功能 使用 Web服务器的连接池进行连接
     * @return DataSource 回一个数据源
     * @author Henry
     * @date  2004-03-10
     */
    public DataSource getDataSource() {
    this.ds = getJbossJndi(this.connPool);
    return ds;
    }
    }
    在A类里调用这个类中的getDataSource() 方法,进行数据库的操作。
    不要在前台进行数据库是连接,很难维护的。