这不是说得很清楚么?
1. ejbCreate方法地返回类型必须是主键类型,必须抛出CreateException。你的主键大概不是java.lang.String吧?好像必须写全。
2. 所有的cmp field必须定义get和set方法,你没有定义setDescription和getDescription方法

解决方案 »

  1.   

    但是很多书上说CMP实体Bean的ejbCreateException()返回类型不必是主键类,而且不需要抛出javax.ejb.CreateException.
    电子工业出版社的〈精通EJB〉的解释是:因为我们使用容器管理的持久,所以这个方法没有返回值。用Bean管理持久我们返回主键。这是因为我们的Bean负责处理主键和访问数据库。现在我们让容器处理持久,容器产生主键!
    但是它给出的示例程序是返回一个java.lang.String。不知道为什么。
    至于description是我在部署时遗漏了,补上后就没有这个Warning了;
    还有jaws.xml的写法我也不太清楚。
    望指点!!
    如果有成功部署的原代码就更好了!!
      

  2.   

    书上所说没有返回值的意思大概是 这个方法return null
    另外,书上也未必就不能出错,你也大可不必拿了张旧地图就偏往墙上撞。jaws.xml你大概可以象下面这样写:
    <jaws>
       <datasource>dsJNDI</datasource>
       <type-mapping>Oracle8</type-mapping>
       
      <enterprise-beans>
        <entity>
          <ejb-name>EJBNAME</ejb-name>
          <table-name>TABLENAME</table-name>
          <create-table>false</create-table>
          
          <cmp-field>
            <field-name>FIELDNAME</field-name>
            <column-name>COLUMNNAME</column-name>
            <jdbc-type>VARCHAR</jdbc-type>
            <sql-type></sql-type>
          </cmp-field>
          <finder>
             <name>findByName</name>
             <query>columnname= {0} </query>
             <order></order>
          </finder>      
        </entity>
        
      </enterprise-beans>
     </jaws>
      

  3.   

    你如果使用JBoss3.0 以上版本,建议不要在使用jaws.xml,最好使用jbosscmp.xml,我给你各JBoss的例子,你研究研究吧,请联系.