Forum Lutèce

teamnet_hfo
 5  1151
5

Lutece - Oracle

Lutece - Oracle

Bonjour,

j'ai pour objectif de monter un serveur avec Lutece connecté à une base de données Oracle.

La base de données et l'utilisateur ont bien été créé (Oracle Database 11g Express)

Ensuite pour la création des tables, j'ai récupéré le script MySql et j'ai utilisé le logiciel DBConvert pour modifier le script et le mttre en 'Oracle'.
Déjà à ce niveau quelques problème sur la longueur des nom des clés primaires.
Facilement corrigeable donc le script est finalement passé.

Voici le fichier db.properties
portal.poolservice=fr.paris.lutece.util.pool.service.TomcatConnectionService
portal.driver=oracle.jdbc.driver.OracleDriver
portal.url=jdbc:oracle:thin:@localhost:1521
portal.user=portail
portal.password=***

Le JAR ojdbc6.jar est bien présent dans la webapp.

Mais le serveur génère plusieurs erreurs à son lancement:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-00923: FROM keyword not found where expected
)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getLogWriter(BasicDataSource.java:1098)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory.createDataSource(BasicDataSourceFactory.java:350)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory.getObjectInstance(BasicDataSourceFactory.java:156)
	at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140)
	at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
	at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
	at org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1028)
	at org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:637)
	at org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:238)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4612)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
	at org.apache.catalina.core.StandardService.start(StandardService.java:525)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

Après avoir cherché un bon moment sur internet, cette fois google n'a pas été mon ami pour trouver LA réponse.
Avez vous une idée du problème ? Sinon avez vous un exemple de paramétrage pour utiliser Lutece avec Oracle ?

Cordialement

H. Fontaine

PLE
La source de données (driver, url, user, ...) ne sont à configurer dans le fichier db.properties que pour LuteceConnectionService ou C3P0ConnectionService. Si vous utilisez TomcatConnectionService, la source de données doit être configurée comme une ressource JNDI dans le fichier META-INF/context.xml ou dans le context de la webapp dans le fichier server.xml de Tomcat (moins recommandé).

 

teamnet_hfo
Merci pour votre réponse. J'utilise aussi un paramétrage dans le fichier server.xml de Tomcat. Il reprend les information déjà cité pour db.properties (je ne peux pas copier le contenu, les balises Html ne passent pas à la validation). Pour fait un test j'ai codé un main, avec les données de connexion en dur et une requete select. Le main s'execute correctement. Donc l'accès à la base est possible. Si vous avez d'autre pistes... Encore merci

: JGO
Bonjour, L'erreur semble provenir d'une requête mal formée pour Oracle. Cela pourrait provenir de l'outil de conversion. A quel moment se produit l'erreur : construction de la base, démarrage du serveur, exécution du code ? JGO

 

teamnet_hfo
L'erreur se produisait lors du démarrage du serveur. J'ai recréé une base de données en vérifiant toutes les tables du code et les insertion dans ces dernières. Le fichier server.xml de mon serveur tomcat n'a pas été modifié depuis ma première demande (idem pour le fichier db.propperties qui si j'ai bien compris est obsolète dans mon cas ???). Cettf soi ci mon serveur démarre :) Mais (et oui il y a un mais) à la validation du mot de passe dans la BackOffice un crash: fr.paris.lutece.portal.service.util.AppException: DAOUtil error : ORA-00942: table or view does not exist - SQL statement : - Plugin : lutece Initial error print stack : java.sql.SQLException: ORA-00942: table or view does not exist Mais je vous confirma après avoir vérifié 2 fois table par table que toute les tables présente dans ma base MySql créée via Ant sont dans ma base de données Oracle. Une nouvelle fois avez vous une petite idée ? Et merci pour avoir pris de votre temps pour me répondre

 

teamnet_hfo
J'ai trouvé mon problème lors de la création de mes table elles étaient entre guillemets. Donc l'appel devait se faire aussi entre guillemets. J'ai une nouvelle fois supprimé, puis recréé toutes mes tables sans les guillemets. J'accède au BackOffice. (le front crash pour le moment) Problème en partie résolu: celui ci est la différence des script MySql et Oracle Merci à tous