Skip to content
Advertisement

Hibernate – Error accessing stax stream – with hibernate.properties

I’m getting this error :

INFO: HHH000205: Loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver, hibernate.dialect=org.hibernate.dialect.Oracle8iDialect, hibernate.connection.password=****, hibernate.connection.username=myUserName, hibernate.connection.url=jdbc:oracle:thin:@//myHost:1521/mySID, hibernate.bytecode.use_reflection_optimizer=false, show_sql=true}

org.hibernate.HibernateException: Error accessing stax stream at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:107) at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:65) at org.hibernate.boot.cfgxml.internal.ConfigLoader.loadConfigXmlResource(ConfigLoader.java:57) at org.hibernate.boot.registry.StandardServiceRegistryBuilder.configure(StandardServiceRegistryBuilder.java:165) at org.hibernate.cfg.Configuration.configure(Configuration.java:258) at gradletests.HibernateUtils.getSessionFactory(HibernateUtils.java:15) at gradletests.MainTest.main(MainTest.java:14) Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] Message: Content is not allowed in prolog. at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:652) at java.xml/com.sun.xml.internal.stream.XMLEventReaderImpl.peek(XMLEventReaderImpl.java:277) at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:103) … 6 more

while trying to open a session like this :

JavaScript

Obviously, my property file is read regarding the output :

INFO: HHH000205: Loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver, hibernate.dialect=org.hibernate.dialect.Oracle8iDialect, hibernate.connection.password=****, hibernate.connection.username=myUserName, hibernate.connection.url=jdbc:oracle:thin:@//myHost:1521/mySID, hibernate.bytecode.use_reflection_optimizer=false, show_sql=true}

hibernate.properties looks like this :

JavaScript

And my build.gradle import those :

JavaScript

The second part of the error :

Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] Message: Content is not allowed in prolog. at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:652) at java.xml/com.sun.xml.internal.stream.XMLEventReaderImpl.peek(XMLEventReaderImpl.java:277) at org.hibernate.boot.cfgxml.internal.JaxbCfgProcessor.unmarshal(JaxbCfgProcessor.java:103) … 6 more

is refering to a row and a col of a file, it’s the hibernate.properties, I know it because if I add a return to the beginning of the file, it results with row 2 and col 1 instead of 1,1.

I don’t understand because it seems to read the file correctly a first time and then crash like it’s waiting for an xml format.

I thought I didnt load correctly the property file in my class but I didnt find anything about how I should load it. Any idea ?

Advertisement

Answer

The hibernate.properties file is applied automatically, you don’t need to load it. Apart from that, if you look at the Java Doc of the method Configuration#configure you will see that it expects the path to a XML file. If you want to load other properties, you have to load these properties yourself with Properties#load add add them with the method Configuration#mergeProperties

Advertisement