IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Plateformes réactives et architectures modulaires Java Discussion :

[Apache Camel] [ServiceMix] No suitable driver found for jdbc:postgresql


Sujet :

Plateformes réactives et architectures modulaires Java

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 305
    Points : 1 383
    Points
    1 383
    Par défaut [Apache Camel] [ServiceMix] No suitable driver found for jdbc:postgresql
    Bonjour,

    Dans un environnement Apache Camel et ServiceMix plusieurs routes existent déjà et ont accès à la base camel_param. J'ai créé une nouvelle route (qu'on appellera "nouv") qui doit accéder à cette base de données. Lors du démarrage il y a l'erreur suivante :
    java.sql.SQLException: No suitable driver found for jdbc:postgresql://basepsql:5432/camel_param
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:208)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:173)
    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:164)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:153)
    at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)
    at com.acms.route.wrappers.DataReplicationWrapper.getRouteParams(DataReplicationWrapper.java:65)
    at com.acms.route.wrappers.DataReplicationWrapper.process(DataReplicationWrapper.java:41)
    at sun.reflect.GeneratedMethodAccessor130.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408)
    at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:279)
    at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:252)
    at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:177)
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460)
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)
    at org.apache.camel.processor.loadbalancer.QueueLoadBalancer.process(QueueLoadBalancer.java:44)
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
    at org.apache.camel.processor.loadbalancer.LoadBalancerSupport.process(LoadBalancerSupport.java:97)
    at org.apache.camel.component.quartz2.CamelJob.execute(CamelJob.java:60)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
    La route existante (qu'on appellera "exist") sur laquelle je me suis basé pour créer "nouv" n'a pas les mêmes infos qui s'affichent dans le "ls" alors que le fichier "camel-context.xml" est très semblable :
    smx>ls | grep nouv
    dataSourceName = jdbc/nouv
    felix.fileinstall.filename = file:/opt/apache-servicemix-7.0.1/etc/org.ops4j.datasource-nouv.cfg
    osgi.jndi.service.name = jdbc/nouv
    camel.context.managementname = route-nouv
    camel.context.symbolicname = route-nouv
    Bundle-SymbolicName = route-nouv
    org.springframework.context.service.name = route-nouv
    smx>ls | grep exist
    dataSourceName = jdbc/exist
    felix.fileinstall.filename = file:/opt/apache-servicemix-7.0.1/etc/org.ops4j.datasource-exist.cfg
    osgi.jndi.service.name = jdbc/exist
    url = jdbc:postgresql://basepsql:5432/exist
    url = jdbc:postgresql://basepsql:5432/camel_param
    databaseName = e_exist
    dataSourceName = jdbc/e_exist
    felix.fileinstall.filename = file:/opt/apache-servicemix-7.0.1/etc/org.ops4j.datasource-eexist.cfg
    osgi.jndi.service.name = jdbc/e_exist
    url = jdbc:sybase:Tds:s-test-7.serveur:5000/e_exist_test_route
    camel.context.managementname = route-exist
    camel.context.symbolicname = route-exist
    Bundle-SymbolicName = route-exist
    org.springframework.context.service.name = route-exist
    Je suppose qu'il y a un paramétrage côté serveur à modifier mais je ne trouve pas.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 952
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 952
    Points : 4 378
    Points
    4 378
    Par défaut
    Le jar du driver postgresql n’est pas dans le classpath.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 305
    Points : 1 383
    Points
    1 383
    Par défaut
    Merci pour votre réponse.
    Edit :
    ---
    De quel classpath parlez-vous et comment le modifier ? Comme d'autres routes utilisent ce pilote, je suppose qu'il s'agit d'une configuration propre à la nouvelle route.
    ---
    Nous utilisons Spring et Maven. Le pom.xml est semblable à celui des autres routes et contient bien le pilote PostgreSql :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		<dependency>
    			<groupId>org.postgresql</groupId>
    			<artifactId>postgresql</artifactId>
    			<version>9.4-1201-jdbc41</version>
    		</dependency>
    Où configure-t-on Servicemix pour y ajouter ce jar dans pour ma nouvelle route ? Je ne connais pas ServiceMix.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 305
    Points : 1 383
    Points
    1 383
    Par défaut
    Le datasource camel_param n'est pas indiqué comme étant utilisé par la route "nouv". Comment puis-je modifier cela ?
    Extrait du résultat de la commande config:list :
    [javax.sql.DataSource]
    ----------------------
    databaseName = camel_param
    dataSourceName = jdbc/camel_param
    felix.fileinstall.filename = file:/opt/apache-servicemix-7.0.1/etc/org.ops4j.datasource-camel_param.cfg
    osgi.jdbc.driver.class = org.postgresql.Driver
    osgi.jndi.service.name = jdbc/camel_param
    password = param_camel
    service.bundleid = 285
    service.factoryPid = org.ops4j.datasource
    service.id = 290
    service.pid = org.ops4j.datasource.a6562103-fe79-47d7-af6d-eb43642a23d6
    service.scope = singleton
    url = jdbc:postgresql://basepsql:5432/camel_param
    user = camel_param
    Provided by :
    OPS4J Pax JDBC Config (285)
    Used by:
    Routes provenant de route1 (787)
    Routes provenant de route2 (785)
    Routes provenant de route3 (784)
    Routes provenant de exist (789)
    Routes provenant de route4 (783)
    Routes provenant de route5 (786)
    Routes provenant de route6 (781)
    Routes provenant de route 7(780)
    Routes provenant de route 7(782)

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 305
    Points : 1 383
    Points
    1 383
    Par défaut
    Le pb venait de la déclaration du datasource qui ne correspondait pas à l'environnement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. No suitable driver found for jdbc.mysql://localhost:3306/
    Par bubulemaster dans le forum JDBC
    Réponses: 2
    Dernier message: 15/08/2016, 19h47
  2. Réponses: 3
    Dernier message: 27/05/2012, 13h25
  3. Réponses: 5
    Dernier message: 20/05/2012, 12h49
  4. Réponses: 1
    Dernier message: 04/06/2008, 23h22
  5. Réponses: 1
    Dernier message: 04/06/2008, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo