-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Probleme mit HibernateAnnotations
PostPosted: Wed Jul 26, 2006 7:16 am 
Newbie

Joined: Wed Jul 26, 2006 6:52 am
Posts: 2
Location: Germany
Hibernate version:3.1.3

HibernateAnnotations version:hibernate-annotations-3.2.0.CR1

Code to build the SessionFactory:
Code:
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();


Full stack trace of any exception that occurs:
Quote:
Initial SessionFactory creation failed.java.lang.IllegalAccessError: tried to access field org.hibernate.cfg.Configuration.xmlHelper from class org.hibernate.cfg.AnnotationConfiguration
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.wazap.services.products.persistent.HibernateUtil.<clinit>(HibernateUtil.java:45)
at com.wazap.services.products.persistent.ElementManager.beginTransaction(ElementManager.java:30)
at com.wazap.services.products.persistent.ElementManager.main(ElementManager.java:55)
Caused by: java.lang.IllegalAccessError: tried to access field org.hibernate.cfg.Configuration.xmlHelper from class org.hibernate.cfg.AnnotationConfiguration
at org.hibernate.cfg.AnnotationConfiguration.addInputStream(AnnotationConfiguration.java:556)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:482)
at org.hibernate.cfg.AnnotationConfiguration.parseMappingElement(AnnotationConfiguration.java:425)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1310)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1296)
at com.wazap.services.products.persistent.HibernateUtil.<clinit>(HibernateUtil.java:41)
... 2 more


Das Problem:
Ich versuche Das Mapping der verschiedenen Klassen ueber HibernateAnnotations zu implementieren (keine mapping elemente in hibernate.cfg.xml).
Dazu erzeuge ich also eine neue Instanz von AnnotationConfiguration.
Da ich jedoch die cache,datenbank- einstellungen nach wie vor innerhalb von hibernate.cfg.xml definieren moechte(muss) rufe ich also nach dem instanziieren die 'configure()' methode auf um die Configdatei im Klassenordner zu laden. Dann wird (s.o.) eine Exception geworfen ;-(

Die Frage:
Hat jemand bereits ein aehnliches Problem gehabt ... (ich habe auch schon im JIRA System gesucht und keinen Hinweis gefunden ...) , oder mache ich etwas grundsaetzlich falsch ... oder ist die HibernateAnnotations API noch nicht fuer diese Zwecke zu verwenden ???

Danke und Gruss aus dem sonnigen Berlin


Top
 Profile  
 
 Post subject: Probleme mit HibernateAnnotations
PostPosted: Wed Jul 26, 2006 1:20 pm 
Newbie

Joined: Wed Jul 26, 2006 6:52 am
Posts: 2
Location: Germany
... dies soll keine Alleinunterhaltung darstellen .... jedoch habe ich nach einigem Probieren, und nach einem etwas tieferen Blick in den Quellcode der Klasse AnnotationConfiguration eine Loesung fuer das von mir selbst gepostete Problem gefunden!

Es ist also tatsaechlich so, dass in der Klasse AnnotationConfiguration versucht wird auf eine private Eigenschaft der Oberklasse zuzugreifen.
Code:
public Configuration addInputStream(InputStream xmlInputStream) throws MappingException {
      try {
         List errors = new ArrayList();
         SAXReader saxReader = xmlHelper.createSAXReader( "XML InputStream", errors, getEntityResolver() );
                   .
                   .
                   .


Die Eigenschaft heisst (s.o.) xmlHelper und ist wie gesagt ind der Oberklasse als private deklariert.

Da so ziemlich ALLE Methoden zum Anfuegen weiterer Configurations-Resourcen letztlich immer wieder auf die o.g. Methode zurueckgreifen kommt immer wieder die im Topic beschriebene Fehlermeldung.

Ich habe das jetzt so geloest, dass ich nun NICHT mehr ein XML-File als propertie resource, sondern ein Properties-File benutze.
Ausserdem sieht mein Aufruf zum builden der SessionFactorx folgendermassen aus:

Code:
sessionFactory = new AnnotationConfiguration()
              .addAnnotatedClass(Element.class)
              .addAnnotatedClass(Attribute.class)
              .addAnnotatedClass(AuditLogRecord.class)
              .addAnnotatedClass(AuditLogAttributeState.class)
              .addAnnotatedClass(Alias.class)
              .addAnnotatedClass(AliasList.class)
                                      .
                                      .
                                      .
              .buildSessionFactory();


D.h. der configure() Aufruf entfaellt!!! Dazu MUSS nun LEIDER die Properties-Datei im Klassen-Pfad enthalten sein, und das laden von externen Resourcen(ausserhalb des Klassen-Pfades) ist nicht mehr moeglich (soweit ich das probieren konnte).

Danke und Gruss aus dem sonnigen Berlin


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.