0

我是一个相对 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>

但我不确定。我假设我应该能够在旧代码库中找到可以转换为特定内容的内容,除非它可能隐式使用主键或类似内容。

任何指针将不胜感激。

4

1 回答 1

0

我们最终采用了“刀耕火种”的方法,从头开始重新创建所有 EJB,并将它们与代码库的其余部分重新集成。看起来没有其他好方法可以从我们所在的地方到达我们想去的地方。

于 2011-09-09T02:01:29.417 回答