簡體   English   中英

weblogic上的Hibernate / JPA繼承問題

[英]Hibernate/JPA inheritance issue on weblogic

我在weblogic 10.3中運行我的spring2.5.6,jpa(hibernate3.4)webapp時遇到了一個奇怪的錯誤


[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>

任何人有任何想法,其他配置提示或指示我應該接受我的調查?

我有同樣的問題。

我的實體擴展了一個類(@MappedSuperClass),它存在於jar依賴項中。 我不得不把那個類從jar轉移到我的項目中。 只有這樣它才能正常運行和部署。

另一種解決方法是在persistence.xml中顯式指定實體

對不起,我的機器上只有WebLogic 10.0,並且它在發行版中沒有任何javassist JAR。 看起來javassist僅在10.3中添加了AOP字節代碼生成。

嘗試從WebLogic部署中刪除javassist JAR並使用它支持的版本可能是值得的。 從web.xml中取出“prefer-web-inf-classes”標簽,看看它是否可以與WebLogic更喜歡的版本一起使用。

你可以發布實體類的代碼,如果你沒有使用注釋,你的hbm映射文件的片段?

您的課程預感可能正確。 在您的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM