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

JDBC Java Discussion :

[Ibatis][JBoss] Problème de datasource


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [Ibatis][JBoss] Problème de datasource
    Bonjour bonjour !

    J'ai un petit problème de datasource que je n'arrive pas à résoudre !
    Lorsque la datasource est contenue dans le sqlMapConfig, tout va bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?xml version="1.0" encoding="UTF-8" ?>
     
    <!DOCTYPE sqlMapConfig      
        PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
        "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
     
    <sqlMapConfig>
     
      <transactionManager type="JDBC" commitRequired="false">
        <dataSource type="SIMPLE">
          <property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver"/>
          <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@*****"/>
          <property name="JDBC.Username" value="***"/>
          <property name="JDBC.Password" value="***"/>
        </dataSource>
      </transactionManager>
     
      <sqlMap resource="com/***/common/mapping/Erreur.xml"/>
     
    </sqlMapConfig>
    La connexion à la datasource se déroule bien, mon mapping est bien effectué et tout est parfait.

    Maintenant quand je cherche à externaliser ma datasource pour la mettre dans le répertoire datasource de JBoss, plus rien ne marche...
    Mon sqlMapConfig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?xml version="1.0" encoding="UTF-8" ?>
     
    <!DOCTYPE sqlMapConfig      
        PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
        "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
     
    <sqlMapConfig>
      <settings enhancementEnabled="true" useStatementNamespaces="true" />
      <transactionManager type="JDBC" commitRequired="false">
        <dataSource type="JNDI">
           <property name="DataSource" value="java:datasources/erreur"/>
       </dataSource>
      </transactionManager>
     
      <sqlMap resource="com/***/common/mapping/Erreur.xml"/>
     
    </sqlMapConfig>
    Mon fichier DS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?xml version="1.0" encoding="UTF-8"?>
    <datasources>
      <local-tx-datasource>
        <jndi-name>datasources/erreur</jndi-name>
       	<use-java-context>false</use-java-context>
        <connection-url>jdbc:oracle:thin:@*****</connection-url>
        <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
        <user-name>***</user-name>
        <password>***</password>
        <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
        <metadata>
        <type-mapping>Oracle9i</type-mapping>
        </metadata>
      </local-tx-datasource>
    </datasources>
    Dans ma console Jboss, Mon JNDI Namespace apparait correctement, le soucis est donc du coté de Ibatis...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    java.lang.ExceptionInInitializerError
    	at test.***.flux.integration.generix.flux1.TestFlux1.testExecuter(TestFlux1.java:26)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:585)
    	at junit.framework.TestCase.runTest(TestCase.java:164)
    	at junit.framework.TestCase.runBare(TestCase.java:130)
    	at junit.framework.TestResult$1.protect(TestResult.java:106)
    	at junit.framework.TestResult.runProtected(TestResult.java:124)
    	at junit.framework.TestResult.run(TestResult.java:109)
    	at junit.framework.TestCase.run(TestCase.java:120)
    	at junit.framework.TestSuite.runTest(TestSuite.java:230)
    	at junit.framework.TestSuite.run(TestSuite.java:225)
    	at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
    	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
    	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
    Caused by: java.lang.RuntimeException: Something bad happened while building the SqlMapClient instance.java.lang.RuntimeException: Error occurred.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/transactionManager/dataSource/end()'.  Cause: com.ibatis.sqlmap.client.SqlMapException: There was an error configuring JndiDataSourceTransactionPool. Cause: javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
    	at com.***.common.Erreur.<clinit>(Erreur.java:41)
    	... 19 more
    Caused by: java.lang.RuntimeException: Error occurred.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/transactionManager/dataSource/end()'.  Cause: com.ibatis.sqlmap.client.SqlMapException: There was an error configuring JndiDataSourceTransactionPool. Cause: javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
    	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:49)
    	at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63)
    	at com.***.common.Erreur.<clinit>(Erreur.java:32)
    	... 19 more
    Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/transactionManager/dataSource/end()'.  Cause: com.ibatis.sqlmap.client.SqlMapException: There was an error configuring JndiDataSourceTransactionPool. Cause: javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
    	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53)
    	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:46)
    	... 21 more
    Caused by: java.lang.RuntimeException: Error parsing XPath '/sqlMapConfig/transactionManager/dataSource/end()'.  Cause: com.ibatis.sqlmap.client.SqlMapException: There was an error configuring JndiDataSourceTransactionPool. Cause: javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
    	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:123)
    	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:105)
    	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
    	at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
    	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72)
    	at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51)
    	... 22 more
    Caused by: com.ibatis.sqlmap.client.SqlMapException: There was an error configuring JndiDataSourceTransactionPool. Cause: javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
    	at com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory.initialize(JndiDataSourceFactory.java:60)
    	at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$9.process(SqlMapConfigParser.java:220)
    	at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
    	... 27 more
    Caused by: javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
    	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
    	at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
    	at javax.naming.InitialContext.init(InitialContext.java:223)
    	at javax.naming.InitialContext.<init>(InitialContext.java:175)
    	at com.ibatis.sqlmap.engine.datasource.JndiDataSourceFactory.initialize(JndiDataSourceFactory.java:42)
    	... 29 more
    Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Class.java:242)
    	at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:42)
    	at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
    	... 33 more

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Dans ta trace on voit :

    Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
    A priori il manque au moins une librairie dans to classpath ...

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par in Voir le message
    Dans ta trace on voit :



    A priori il manque au moins une librairie dans to classpath ...

    Merci !! Effectivement j'avais oublié de récupérer les jar client de jboss dans Tomcat...
    Bon maintenant j'ai juste un pb de mapping des résultats...

  4. #4
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    En fait j'ai encore un autre problème mais uniquement quand je fais pointer mon fichier de conf ibatis vers la datasource de jboss.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    java.lang.Exception: java.lang.RuntimeException: Error while Excecuting Batchcom.ibatis.common.jdbc.exception.NestedSQLException:   
    --- The error occurred in com/***/common/mapping/***.xml.  
    --- The error occurred while applying a result map.  
    --- Check the selectErrorById-AutoResultMap.  
    --- The error happened while setting a property on the result object.  
    --- Cause: java.lang.reflect.UndeclaredThrowableException
    	at com.***.common.***.selectErrorById(***.java:54)
    	at com.***.flux.integration.siege.silog.traitement.referentielArticle.ReferentielArticle.executer_impl(ReferentielArticle.java:86)
    	at ...
    Et je n'ai aucun problème de mapping quand j'exécute le code sous tomcat...
    Y a t'il un problème par rapport à mon sqlMapConfig qui n'a pas changé depuis mon 1er post ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    J'ai un problème qui n'est pas tout à fait identique, mais je cherche à avoir plusieurs datasources pour utiliser plusieurs bases de données. J'ai essayé de mettre plusieurs datasources dans mon <database></database> mais le format xml ne semble pas correct, savez-vous comment faire pour résoudre ce soucis ?

    Au fait, as tu résolu ton problème KPingouin ?

    Merci d'avance.

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Tu peux mettre plusieurs fichiers ds dans ton répertoire jboss avec des noms différents.

    Sinon oui mon problème n'en était pas vraiment un. Tout marche en fait.
    C'est juste que je lançais mon appel depuis mon test jUnit et du coup je bypassais les variables d'environnements de tomcat.

    En fait tout marche très bien maintenant.

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

Discussions similaires

  1. Problème : Installation Datasource Mysql sur Jboss 7
    Par chewbageo dans le forum Wildfly/JBoss
    Réponses: 0
    Dernier message: 05/06/2014, 16h03
  2. Problème de Datasource (JBoss/Hibernate/JPA)
    Par oups655 dans le forum Wildfly/JBoss
    Réponses: 10
    Dernier message: 24/08/2012, 10h34
  3. [IBATIS/mysql] problème de mapping
    Par iftolotfi dans le forum Persistance des données
    Réponses: 3
    Dernier message: 07/07/2006, 10h40
  4. [EJB3] [JBoss] Problème java.lang.NoClassDefFoundError:
    Par jctigre dans le forum Java EE
    Réponses: 3
    Dernier message: 24/04/2006, 13h33
  5. [EJB][Jboss] problème de déploiment d'EJB session
    Par 17mounir dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 13/03/2006, 01h16

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