问题1,你没有配置好Datasource
问题2,你的client调用是错误的。根据错误猜测,client是EJBHome,所以先从client得到EJBObject对象,然后再调用removeSubTab()。如果用reflection的话,我可以写出代码:Object remote = client.getClass().getMethod("create",null).invoke(ref,null);
remote.getClass().getMethod("removeSubTab",new Class[]{String}).
           invoke(remote,new Object[]{"aa"});

解决方案 »

  1.   

    问题1,已经配好了Datasource,实体bean的生成就是在连上数据库之后基于表自动生成的。
    问题2,client端也是生成向导中选定session bean之后自动生成的。
      

  2.   

    问题楼上的说了,第一个问题连接数据库就可以解决。后面的问题是对EJB调用过程的理解。
    关于home,localhome,bean的调用,一般的ejb书都会介绍
      

  3.   

    mysql-ds.xml配置好没有哩。
    stadardJbossCmp-jdbc那个datasource还要配置一下的 
    上次我好像也遇到过这个问题。。
    调用应该不难吧,client先得到sessionBean的home接口之后-》remote接口。。
      

  4.   

    我用的是oracle-ds.xml,内容如下
    <?xml version="1.0" encoding="UTF-8"?>
    <datasources>
      <local-tx-datasource>
        <jndi-name>OracleDS</jndi-name>
        <connection-url>jdbc:oracle:thin:@192.168.211.214:1521:mpay</connection-url>
    <!-- Here are a couple of the possible OCI configurations.
    For more information, see http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/java.920/a96654/toc.htm <connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url>
    or
    <connection-url>jdbc:oracle:oci:@(description=(address=(host=youroraclehost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=yourservicename)))</connection-url> Clearly, its better to have TNS set up properly.
     -->
        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
        <user-name>mlottery</user-name>
        <password>mlottery</password>
        <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
      </local-tx-datasource>
    </datasources>
    jbosscmp-jdbc.xml的内容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 3.2//EN" "http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_2.dtd">
    <jbosscmp-jdbc>
      <enterprise-beans>
        <entity>
          <ejb-name>NmSubsystemTab</ejb-name>
          <datasource>OracleDS</datasource>
          <datasource-mapping>Oracle8</datasource-mapping>
          <table-name>NM_SUBSYSTEM_TAB</table-name>
          <cmp-field>
            <field-name>subsystemid</field-name>
            <column-name>SUBSYSTEMID</column-name>
          </cmp-field>
          <cmp-field>
            <field-name>subsystemname</field-name>
            <column-name>SUBSYSTEMNAME</column-name>
          </cmp-field>
          <cmp-field>
            <field-name>hostid</field-name>
            <column-name>HOSTID</column-name>
          </cmp-field>
          <cmp-field>
            <field-name>workpath</field-name>
            <column-name>WORKPATH</column-name>
          </cmp-field>
          <cmp-field>
            <field-name>description</field-name>
            <column-name>DESCRIPTION</column-name>
          </cmp-field>
          <cmp-field>
            <field-name>syswatch</field-name>
            <column-name>SYSWATCH</column-name>
          </cmp-field>
        </entity>
      </enterprise-beans>
    </jbosscmp-jdbc>
      

  5.   

    你要找到一个叫jboss-jdbc.xml的文件,把里面所有叫OracleDS的字符都改为java:/OracleDS就行了。
      

  6.   

    按楼上的方法改了之后没有异常了,但是还有这个:
    MAPPING configuration error for request URI /
      

  7.   

    oracle-ds.xml是对的吧。
    jbosscmp-jdbc.xml中我不是用oracle:
       <defaults>
         <datasource>java:/DB</datasource>
         <datasource-mapping>Hypersonic SQL</datasource-mapping>
         <preferred-relation-mapping>forgein-key</preferred-relation-mapping>
       </defaults>至于MAPPING configuration error for request URI /
    不清楚,好像和这个关系不大??????(愚见,楼下高手继续)
      

  8.   

    MAPPING configuration error for request URI /已经搞清楚了,跟这个无关。
    我的jbulder10总报措
    Unable to load document from file (D:/jbproject/EJBtraining/EJBModule1/META-INF/jbosscmp-jdbc.xml)
    Connection timed out: connect: Connection timed out: connect
    请问这个是为什么?
    另外系统每一次修改保存,都要整个重编译一下,请问这个可不可以设置一下取消了?