我是一个相对 Java EE 轻量级的人,负责将旧应用程序从 OC4j 10.x (JEE 1.1) 迁移到 Glassfish 3.1 (JEE 1.4)。我试图了解此部署错误的含义以及我应该如何更新我的应用程序以解决它。
Caught java.lang.RuntimeException while processing CMP bean [FMSCatPval] for
application [FMS_nb_14]; module [FMS_nb_14-ejb.jar]: JDO74024: Missing or invalid
definition of JDOQL query elements for CMP 1.1 finder FMSCatPval.findByModel(int).
这是 ejb-jar.xml 中相关的 EJB 定义:
<entity>
<display-name>FMSCatPval</display-name>
<ejb-name>FMSCatPval</ejb-name>
<home>com.fms.ejbs.pval.CatPvalHome</home>
<remote>com.fms.ejbs.pval.CatPval</remote>
<ejb-class>com.fms.ejbs.pval.CatPvalEJB</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>com.fms.ejbs.pval.CatPvalKey</prim-key-class>
<reentrant>false</reentrant>
<cmp-version>1.x</cmp-version>
<cmp-field><field-name>pval</field-name></cmp-field>
<cmp-field><field-name>model_num</field-name></cmp-field>
<cmp-field><field-name>step</field-name></cmp-field>
<cmp-field><field-name>cntl_cat</field-name></cmp-field>
<cmp-field><field-name>chiSquare</field-name></cmp-field>
</entity>
我在网上找到了一些类似的帖子,但没有任何解决方案让我无法忍受。我认为我需要在实体声明中添加类似这样的内容:
<finder>
<name>findByModel</name>
<query>model_num = {0}</query>
</finder>
但我不确定。我假设我应该能够在旧代码库中找到可以转换为特定内容的内容,除非它可能隐式使用主键或类似内容。
任何指针将不胜感激。