Avatar billede dodger Nybegynder
13. oktober 2005 - 11:29 Der er 18 kommentarer og
1 løsning

Fejl med Hibernate

Jeg sidder og prøver at få hibernate til at virke på min maskine. Jeg har fulgt tutorialen på http://www.hibernate.org/hib_docs/v3/reference/en/html/tutorial.html og jeg har implementeret alle de klasser som står i tutorialen.

Til forskel bruger jeg en Resin web server, men det skulle ikke gøre den store forskel.
Jeg får følgende fejlmeddelse (kører programmet i Eclipse)

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.ExceptionInInitializerError
    at HibernateUtil.<clinit>(HibernateUtil.java:25)
    at EventManager.createAndStoreEvent(EventManager.java:23)
    at EventManager.main(EventManager.java:17)
Caused by: org.hibernate.MappingException: Error reading resource: Event.hbm.xml
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:452)
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1263)
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1235)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1217)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1184)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1112)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1098)
    at HibernateUtil.<clinit>(HibernateUtil.java:21)
    ... 2 more
Caused by: org.hibernate.MappingException: invalid mapping
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:399)
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:449)
    ... 9 more
Caused by: org.xml.sax.SAXParseException: The content of element type "hibernate-mapping" must match "(meta*,typedef*,import*,(class|subclass|joined-subclass|union-subclass)*,(query|sql-query)*,filter-def*)".
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:172)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:382)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2048)
    at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:932)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(XMLNSDocumentScannerImpl.java:719)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1685)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
    at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:398)
    ... 10 more

Line 25 i min HibernateUtil kaster exceptionen. Programstumpen er gengivet er
        try {
            // Create the SessionFactory
            sessionFactory = new Configuration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            log.error("Initial SessionFactory creation failed.", ex);
            throw new ExceptionInInitializerError(ex);
        }

Det er inden i en static blok.

Er der nogen der har et forslag til hvad dette kan skyldes..?
Avatar billede arne_v Ekspert
13. oktober 2005 - 11:34 #1
fejlen står jo her:

Caused by: org.hibernate.MappingException: Error reading resource: Event.hbm.xml

Caused by: org.hibernate.MappingException: invalid mapping

Caused by: org.xml.sax.SAXParseException: The content of element type "hibernate-mapping" must match "(meta*,typedef*,import*,(class|subclass|joined-subclass|union-subclass)*,(query|sql-query)*,filter-def*)".

den er gal med XML syntaxen i Event.hbm.xml
Avatar billede arne_v Ekspert
13. oktober 2005 - 11:34 #2
hvis du ikke selv kan finde den så post XML'en her
Avatar billede dodger Nybegynder
13. oktober 2005 - 11:36 #3
Jeg har luret den nu... Der havdet sneget sig nogen mærkelig tegn ind i XML filen. Men tak for hurtigt svar.

Det kan være at du (eller nogen andre) så kan svare på hvorfor jeg får warnings fra log4j
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Avatar billede arne_v Ekspert
13. oktober 2005 - 11:41 #4
du har vel ikke en log4j konfigurations fil !?

:-)
Avatar billede dodger Nybegynder
13. oktober 2005 - 11:43 #5
hmm.. det er jeg ikke sikker på. Jeg har ikke brugt log4j før så jeg er ikke helt oppe på tærene om hvordan den sættes op. Burde den ikke bare kunne køre udfra nogen default parametre..?
Avatar billede arne_v Ekspert
13. oktober 2005 - 11:49 #6
det gør den jo også (kører)

men den giver dig lige en warning om at den kører på default

du kan læse om log4j inkl. config her:

http://www.eksperten.dk/artikler/97
Avatar billede dodger Nybegynder
13. oktober 2005 - 11:55 #7
ok tak... hva' skal du ikke afgive et svar så du kan få nogen point?
Avatar billede dodger Nybegynder
13. oktober 2005 - 12:05 #8
Ok.. jeg kiggede i artiklen, og har nu oprettet en properties fil der ser således ud

log4j.category.Log3 = debug, console
log4j.appender.console.threshold = debug
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = %-30c %d %-5p %m%n

men jeg får stadig før omtalte warnings
Avatar billede dodger Nybegynder
13. oktober 2005 - 12:06 #9
og jeg kører programmet med følgende parametre
-Dlog4j.configuration=file:"${project_loc}/src/log4j.properties"
Avatar billede arne_v Ekspert
13. oktober 2005 - 12:13 #10
svar
Avatar billede arne_v Ekspert
13. oktober 2005 - 12:14 #11
prøv lige med en absolut hardcodet sti
Avatar billede dodger Nybegynder
13. oktober 2005 - 12:16 #12
nope.. jeg får stadig de 2 warnings
-Dlog4j.configuration=file:"C:/Program Files/eclipse/workspace/hibernatetest/src/log4j.properties"
Avatar billede arne_v Ekspert
13. oktober 2005 - 12:21 #13
prøv lige:

-Dlog4j.configuration=file:"///C:/Program Files/eclipse/workspace/hibernatetest/src/log4j.properties"

det er bare et spørgsmål om at få filnavn syntaxen rigtig
Avatar billede dodger Nybegynder
13. oktober 2005 - 12:29 #14
det virkede ikke..
Avatar billede arne_v Ekspert
13. oktober 2005 - 12:31 #15
prøv så at kopiere den op i C:\ og

-Dlog4j.configuration=file:///C:/log4j.properties
Avatar billede dodger Nybegynder
13. oktober 2005 - 13:02 #16
prøvet og virker heller ikke.
Den kan godt finde filen (for hvis jeg skriver noget forkert straffer JRE'en mig), men af en eller anden grund får jeg de warnings...
btw når jeg klikker på "accepter" svar sker der ingenting!?!! Kan det være fordi jeg bruger firefox..?
Avatar billede dodger Nybegynder
13. oktober 2005 - 13:03 #17
nej.. det virker heller ikke i IE
Avatar billede dodger Nybegynder
13. oktober 2005 - 13:16 #18
ok sejt.. jeg skulle klikke på dit navn før jeg trykkede accepter - sejt bruger interface *host*
Hvis nogen der designer siden læser dette har jeg et forslag - hvis der er netop 1 bruger der har afgivet svar og man klikker "accepter", så er det nok den ene bruger man mener.
Avatar billede Slettet bruger
14. oktober 2005 - 20:24 #19
hehe, ja, jeg har studset over det samme - men de mener jo nok at man kan vælge mellem bruger1 og bruger1 - det kunne jo være man var i tvivl ;-)
btw, en kanon god bog til Hibernate er "Hibernate in Action", jeg bruger den selv og den er god som opslagsværk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester