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 に答える