weblogic 生成代码和现有的cmp字段重名问题

03-07-29 mcindo

在ejb-jar.xml有个字段为oldState, 定义在home和bean为String类型的.在部署到weblogic之后,发现部署错误.查看代码,然来weblogic生成代码中在ejbcreate方法里第一行有一个int oldState,也就是说他定义了一个变量和我原来的cmp字段oldState一样,结果在create赋值时oldState=null;出现错误.很明显是由于对int变量赋null出现的.为什么weblogic用那个变量名??? 能否改动设置,生成别的变量???

怎么解决改问题?(我不想把cmp字段改名,那样涉及到很多问题)

如果使用weblogic可以看一下weblogic生成的cmp代码在..._WebLogic_CMP_RDBMS.java文件中,ejbCreate方法中第一句.

生成的代码在下面:(weblogic server8.1beta)

 int oldState = __WL_method_state; //sheng 成的代码 int
    try {
      __WL_method_state = STATE_EJB_CREATE;
   .......   
         priority = null;
      oldState = null;//cmp字段String类型,现在被看作int型 赋值出错
      applDate = null;
      soWorkId = null;
      
      
      super.ejbCreate( arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, arg26, arg27, arg28, arg29, arg30, arg31, arg32, arg33);
      com.cattsoft.web.so.entity.so.SoPK __WL_pk = (com.cattsoft.web.so.entity.so.SoPK) __WL_getPrimaryKey();
      return __WL_pk;
    } catch (javax.ejb.CreateException ce) {
      throw ce;
    } catch (RuntimeException re) {
      if (__WL_verbose) {
        Debug.say("rethrowing RuntimeException.");
        re.printStackTrace();
      }
      throw re;
    } catch (Exception ex) {
      if (__WL_verbose) {
        Debug.say("wrapping Exception in PersistenceRuntimeException.");
        ex.printStackTrace();
      }
      throw new PersistenceRuntimeException(ex);
    }
    
    finally {
      __WL_method_state = oldState;
    }    }
[

mcindo
2003-07-30 11:26

大家都没有遇到过这个问题吗?