2009-04-20 11 views
3

Im einen seltsamen Fehler bekommen, wenn mein spring2.5.6 läuft, JPA (hibernate3.4) Webapp in Weblogic 10,3Hibernate/JPA Vererbung Problem auf WebLogic


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

Die com.xxx. Die Klasse "domain.model.Scheme" ist eine zugeordnete Unterklassenentität der abstrakten Fondseinheit in einer Vererbungshierarchie "single_table", und ich erhalte diesen Fehler für alle Entitäten in der Hierarchie. Ich verwende sowohl annotierte Klassen als auch XML-Metadaten, um die Zuordnungen für meine Persistenzklassen zu definieren.

Ich bekomme nur diesen Fehler, wenn die App in Weblogic bereitgestellt wird, so läuft alles gut mit Junit. Ich habe versucht, auf javaassit.jar auf die neueste Version zu aktualisieren.

Problem Sieht für mich wie ein Problem mit Classloading-Reihenfolge, aber ich kann es nicht herausfinden.

PS. Wie von bea schlug ich habe folgendes auf die weblogic.xml

<container-descriptor> 
    <prefer-web-inf-classes>true</prefer-web-inf-classes> 
</container-descriptor> 

Jedermann erhielt alle mögliche Ideen, andere Konfigurationstipps oder Richtungen habe ich meine Untersuchung nehmen sollte?

Antwort

2

Ich hatte das gleiche Problem.

Meine Entitäten erweiterten eine Klasse (@MappedSuperClass), die innerhalb einer Jar-Abhängigkeit lebte. Ich musste diese Klasse aus dem Glas in mein Projekt bringen. Nur dann würde es funktionieren und gut eingesetzt werden.

Auch eine andere Möglichkeit, dies zu lösen, ist Ihre Entitäten explizit in dem persistence.xml

0

Es tut mir leid, ich habe nur WebLogic 10.0 auf meinem Rechner, und es hat keine javassist JARs in der Distribution. Sieht aus wie javassist wurde nur in 10.3 für AOP-Byte-Code-Generation hinzugefügt.

Es könnte einen Versuch wert sein, die javassist-JAR aus Ihrer WebLogic-Bereitstellung zu entfernen und die von ihr unterstützte Version zu verwenden. Entfernen Sie das "prefer-web-inf-classes" -Tag aus Ihrer web.xml und prüfen Sie, ob es mit der von WebLogic bevorzugten Version funktionieren kann.

0

Können Sie den Code für die Entitätsklasse und, wenn Sie keine Anmerkungen verwenden, das Segment Ihrer hbm-Zuordnungsdatei angeben?

Ihre Klassenpfadvorstellung kann richtig sein. In Ihrem weblogic-application.xml, versuchen Sie diese

<prefer-application-packages> 
    <package-name>antlr.*</package-name> 
    <package-name>org.antlr.*</package-name> 
</prefer-application-packages> 

Wenn Sie mehr Protokollausgabe, Posten Sie bitte auch, dass.

-1

Ich habe gerade ein paar Tage selbst verloren. Das Problem für mich war, dass ich zwei Datendienste-Module in meiner App getrennt habe. Ich denke, 10.3 hat damit Probleme. Ich bin mir der Lösung nicht sicher, aber eine Arbeit für mich bestand darin, beide Datendienste-Module in nur einem zu kombinieren. BEA scheint sich dieses Problems bewusst zu sein. Hoffentlich hilft die folgende URL. Referenz CR370788. http://edocs.bea.com/wls/docs103/issues/known_resolved.html

+0

Der Link ist tot angeben. –