WebLogic上/ JPAの継承の問題を休止
-
12-09-2019 - |
質問
イム私のspring2.5.6を実行しているときに奇妙なエラーを取得して、JPA(hibernate3.4)Webアプリケーション <時間>
[ERROR] Javassist Enhancement failed: com.xxx.domain.model.Scheme
java.lang.NoSuchMethodError: pcGetManagedFieldCount
at com.xxx.domain.model.Fund.<clinit>(Fund.java)
at sun.misc.Unsafe.ensureClassInitialized(Native Method)
at sun.reflect.UnsafeFieldAccessorFactory.newFieldAccessor(UnsafeFieldAc
cessorFactory.java:25)
<時間>
com.xxx.domain.model.SchemeクラスはSINGLE_TABLE継承階層上の抽象ファンドのエンティティのマッピングされたサブクラスのエンティティである、と私は、階層上のすべてのエンティティのために、このエラーを取得しています。私は私の永続クラスのマッピングを定義するには、注釈付きクラスとXMLメタデータの両方を使用しています。
アプリがWebLogicにデプロイされたとき、私はこのエラーを取得し、そのすべてがJUnitのを使って細かい動作します。私はjavaassit.jarの最新バージョンにアップグレードしようとしています。
問題クラスローディングのための問題のように私には見えるが、私はそれを把握するカントます。
PS。 BEAが示唆したように、私はあるweblogic.xmlに以下を追加した。
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
誰もが、私は私の調査を取る必要があります任意のアイデア、他の設定のヒント、または方向を得たか。
解決
私は同じ問題を抱えていました。
私の実体は、jarファイルの依存関係の内側に住んでいたクラス(@MappedSuperclass)を拡張しました。私は自分のプロジェクトにjarファイルからそのクラスを移動しなければなりませんでした。その場合にのみ、それが動作し、罰金展開します。
また、これを解決するための別の方法は、persistence.xmlで明示的にあなたのエンティティを指定することです。
他のヒント
私は申し訳ありませんが、私は私のマシン上のWebLogic 10.0持っており、それがディストリビューションのいずれかのJavassistのJARを持っていません。 Javassistのように見えるだけAOPバイトコード生成のために10.3に追加されました。
これは、WebLogicの展開からJavassistのJARファイルを削除し、それがサポートするバージョンを使用するには、試してみる価値はあるかもしれません。あなたのweb.xmlのうち、「好み-WEB-INF-クラス」タグを取ると、それはWebLogicが好むバージョンで動作できるかどうかを確認します。
このあなたは、エンティティクラスのコードを投稿することができ
あなたのクラスパスの勘は、右のかもしれません。あなたのweblogic-application.xmlのでは、これを試してみてください。
<prefer-application-packages>
<package-name>antlr.*</package-name>
<package-name>org.antlr.*</package-name>
</prefer-application-packages>
あなたが任意のより多くのログ出力を持っている場合は、、それにも投稿してください。
私はこの自分自身に日のカップルを失いました。私にとっての問題は、私は私のアプリでは、別のデータ・サービス・モジュールを2ということでした。私は10.3はそれでいくつかの問題を持っていると思っています。私は解決策のわからないんだけど、私の周りの作業はただ一つに自分のデータ・サービス・モジュールの両方を組み合わせることでした。 BEAは、この問題を認識しているようです。うまくいけば、以下のURLが役立ちます。参考CR370788。 http://edocs.bea.com/wls/docs103/issues/known_resolved。 HTML の