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.  [ 5 posts ] 
Author Message
 Post subject: Problème migration sur oracle 9i
PostPosted: Fri Dec 01, 2006 6:27 am 
Newbie

Joined: Fri Dec 01, 2006 6:01 am
Posts: 3
Bonjour à tous,
Je maintient une application java j2ee-oracle, avec apache et tomcat 4.1.29.
Mon application migre sous 9i. J'ai suivi les différentes étapes de migration:
1) Modification de la propriété hibernate.dialect à Oracle9Dialect
2) Modification du lien vers la nouvelle source de données 9i
3) Modification de la librairie : de classes12.zip 8i à soit classes12.jar 9i soit ojdbc14.jar.
4) Les scripts d'arrêt relance de tomcat pour y inclure la nouvelle librairie dans le CLASSPATH

Hibernate version: J'utilise hibernate2.jar

Mapping documents: N/A

Code between sessionFactory.openSession() and session.close():
Code de création de la sessionfactory : Classe HibernateUtil.java
static {
try {
String configFile = ApplicationUtil.getProperty(ApplicationConstant.KEY_HIB_CONF_FILE);
sessionFactory = new Configuration().configure(configFile).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);
}
}
(relativement standard)

Extrait de hibernate.cfg.xml :
Code:
<session-factory name="ecm">
        <property name="connection.datasource">java:comp/env/jdbc/myoracle</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>
      <property name="show_sql">false</property>
      <!-- Uncomment for runtime -->
      <!-- Comment for build -->
       <mapping resource="app.hbm.xml"/>
       
    </session-factory>


Full stack trace of any exception that occurs:
Exception applicative :
javax.servlet.ServletException: L''exécution de la servlet a lancé une exception
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
....
cause mère (root cause)
java.lang.ExceptionInInitializerError
at com.snecma.ecom.ecm.orm.HibernateUtil.(HibernateUtil.java:26)
at com.snecma.ecom.ecm.app.Reference.initEngineList(Reference.java:61)
at com.snecma.ecom.ecm.app.Reference.initSearchCriteria(Reference.java:48)
at com.snecma.ecom.ecm.app.GenericAction.execute(GenericAction.java:80)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)


Name and version of the database you are using: Oracle9i

tomcat erreur log :
[ERROR] 01 déc. 2006, 11:14:15,538 (HibernateUtil.java:<clinit>:25) Initial SessionFactory creation failed.
java.lang.NullPointerException
at org.apache.commons.dbcp.DelegatingConnection.close(DelegatingConnection.java:195)
at org.apache.commons.dbcp.PoolableConnection.reallyClose(PoolableConnection.java:129)
at org.apache.commons.dbcp.PoolableConnectionFactory.destroyObject(PoolableConnectionFactory.java:311)
at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:842)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:821)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:518)
at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1823)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1143)
at com.snecma.ecom.ecm.orm.HibernateUtil.<clinit>(HibernateUtil.java:22)
at com.snecma.ecom.ecm.app.Reference.initEngineList(Reference.java:61)
at com.snecma.ecom.ecm.app.Reference.initSearchCriteria(Reference.java:48)
at com.snecma.ecom.ecm.app.GenericAction.execute(GenericAction.java:80)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
at java.lang.Thread.run(Thread.java:534)

A noter
Avec toutes les modifications de connexion sauf la librairie, je garde donc la librairie oracle 8i, je n'ai pas d'erreur. Dès que je la remplace par une des librairies 9i, j'obtient cette erreur

Any suggestions ?
Merci d'avance[/code]


Top
 Profile  
 
 Post subject:
PostPosted: Sat Dec 02, 2006 7:17 pm 
Proxool Developer
Proxool Developer

Joined: Tue Aug 26, 2003 10:42 am
Posts: 373
Location: Belgium
A premiere vue, je pense qu'il s'agit d'un probleme de connexion a la database qui n'aurait rien a voir avec Hibernate.

Il semble que tu obtiennes ta connexion via une DataSource definie au niveau de Tomcat lui-meme (vu le stacktrace incluant DBCP...).

Question: es-tu sur d'avoir remplace la librairie JDBC de Oracle dans TOMCAT/common/lib ?

Question2: es-tu sur que l'URL Oracle9 est le meme que Oracle8 ?


Top
 Profile  
 
 Post subject:
PostPosted: Mon Dec 04, 2006 10:57 am 
Newbie

Joined: Fri Dec 01, 2006 6:01 am
Posts: 3
Salut,

Question 1 : Oui je confirme, en pointant sur la base 9i avec une librairie classes12.zip pour 8i dans $TOMCAT/common/lib, l'application tourne.
Je remplaces la librairies par une librairie 9i, je relance tomcat et à l'appel de l'application j'obtient le message ci-dessus.

Question2 : Non l'URL n'est pas la même, mais je pointe déjà sur 9i !!
Par contre oui je défini ma source de données dans server.xml ed tomcat. et je reprend la référence dans hibernate.cfg.xml.

Par ailleurs j'ai des batch qui fonctionnent très bien avec ojdbc14.jar, qui sont des shelle appelant du java directement sans de couche tomcat.

Je crains donc qu'il ne s'agisse d'une incompatibilité tomcat hibernate ~ avec ma source de données 9i !


Top
 Profile  
 
 Post subject:
PostPosted: Mon Dec 04, 2006 11:04 am 
Proxool Developer
Proxool Developer

Joined: Tue Aug 26, 2003 10:42 am
Posts: 373
Location: Belgium
mathieu94 wrote:
Je crains donc qu'il ne s'agisse d'une incompatibilité tomcat hibernate ~ avec ma source de données 9i !


Cela devrait fonctionner sans probleme: nous avons une application qui fonctionne avec Tomcat 4, 5.0 et 5.5 avec Oracle 9i et 10i sans aucun probleme (toutes combinaisons possibles).

Il s'agit vraissemblablement d'un probleme de configuration quelque part.

Pourquoi ne pas essayer de mettre Hibernate en Debug pour avoir plus d'info ?
Je te conseille egalement de le configurer sans la data source dans un premier temps histoire d'isoler le probleme.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Dec 05, 2006 11:24 am 
Newbie

Joined: Fri Dec 01, 2006 6:01 am
Posts: 3
en mode DEBUG pour hibernate, le problème survient lorsque je veux récupérer ma session hibernate

s = sessionFactory.openSession();

J'ai bien regarder toutes mes config et ca semble cohérent. Ce qui semble incohérent c'est qu'avec classes12.jar (pour 8i) ca marche !

Je continue mes tests


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 5 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:
cron
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.