web-dev-qa-db-fra.com

configuration de la source de données Oracle jboss 7

Je suis en train de migrer de jboss 4.3 vers jboss 7.1.1 (Final) et j'essaie de configurer une source de données Oracle, mais cela ne fonctionne pas. Voici ce que j'ai fait pour configurer une source de données Oracle

1) Téléchargé ojdbc6-11.jar et l’a placé dans le dossier $ JBOSS_HOME/modules/com/Oracle/ojdbc6/main

2) Création du fichier module.xml sous $ JBOSS_HOME/modules/com/Oracle/ojdbc6/main et voici le contenu du fichier

<module xmlns="urn:jboss:module:1.0" name="com.Oracle.ojdbc6">
  <resources>
    <resource-root path="ojdbc6.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
  </dependencies>
</module>

3) Ajout du pilote et de la source de données suivants dans standalone.xml

<drivers>
  <driiver name="Oracle" module="com.Oracle.ojdbc6">
    <xa-datasource-class>Oracle.jdbc.OracleDriver</xa-datasource-class>
  </driver>
</drivers>

<datasource jndi-name="Java:/Altis" pool-name="Altis" enabled="true" use-Java-context="true">
  <connection-url>connurl</connection-url>
  <driver>Oracle</driver>
  <security>
    <user-name>username</user-name>
    <password>passwd</password>
  </security>
</datasource>
</datasources>

Cependant, lorsque je déploie mon fichier war, le message d'erreur suivant s'affiche:

16:54:43,281 INFO  [org.jboss.as.server] (HttpManagementService-threads - 2) JBA
S015870: Deploy of deployment "altisavante.war" was rolled back with failure mes
sage {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.na
ming.context.Java.module.altisavante.altisavante.env.Altisjboss.naming.context.j
ava.AltisMissing[jboss.naming.context.Java.module.altisavante.altisavante.env.Al
tisjboss.naming.context.Java.Altis]"]}

Est-ce que je manque quelque chose?

8
user1066568

Voici un lien sur la configuration de la source de données pour JBoss 7 qui fonctionne bien sûr avec 7.1 

https://community.jboss.org/wiki/DataSourceConfigurationInAS7

L'exemple est la configuration d'un exemple MySQL. 
Voici ce que j'ai fait pour un pilote Oracle

<datasource jndi-name="Java:/sigap_ws_receiver" pool-name="sigap_ws_receiver" enabled="true">
    <connection-url>jdbc:Oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=off)(ADDRESS=(PROTOCOL=TCP)(Host=192.168.0.1)(PORT=1524))(CONNECT_DATA=(SERVICE_NAME=profepa)(SERVER=DEDICATED)))</connection-url>
    <driver>com.Oracle</driver>
    <pool>
        <min-pool-size>3</min-pool-size>
        <max-pool-size>5</max-pool-size>
    </pool>
    <security>
        <user-name>user</user-name>
        <password>pass</password>
    </security>
    <validation>
        <exception-sorter class-name="org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter"/>
    </validation>
    <timeout>
        <blocking-timeout-millis>5000</blocking-timeout-millis>
        <idle-timeout-minutes>5</idle-timeout-minutes>
    </timeout>
</datasource>

La section du pilote ressemblerait à ceci: 

<drivers>
    <driver name="com.Oracle" module="com.Oracle">
        <driver-class>Oracle.jdbc.driver.OracleDriver</driver-class>
    </driver>
</drivers>

Mon module.xml est sous $ JBOSS_HOME\modules\com\Oracle\main dans le fichier jar ojdbc6.jar:

<module xmlns="urn:jboss:module:1.0" name="com.Oracle">
    <resources>
        <resource-root path="ojdbc6.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
    </dependencies>
</module>
14
Teuctzintli

Toutes ces réponses m'ont aidé à faire en sorte que cela fonctionne, mais aucune d'entre elles n'étant la solution exacte, j'ai donc pensé ajouter la mienne.

Tout d’abord, notez que vous pouvez le faire dans le JBoss web-console ou en configurant manuellement la source de données dans les fichiers xml. Cependant, je vous suggère fortement de le configurer via la console Web pour éviter les erreurs telles que celles commises par le PO et apparemment personne ne l’a remarqué: 

<drivers>
  <driiver name="Oracle" module="com.Oracle.ojdbc6">
    <xa-datasource-class>Oracle.jdbc.OracleDriver</xa-datasource-class>
  </driver>
</drivers>

Notez que la déclaration du pilote contient deux i.

Configuration manuelle [Non recommandé]

Tout d’abord, vous devez vous assurer que votre Oracle jdbc est configuré.

  • Accédez à $JBOSS_HOME/modules et s'il n'existe pas déjà, créez l'arborescence de dossiers Oracle/jdbc/main
  • Accédez à ce dossier et copiez le odjbc6-11.jar
  • Créez module.xml avec le contenu suivant 
<module>
    <resources>
        <!-- make sure the path match the name of the file -->
        <resource-root path="ojdbc6-11.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

Maintenant que votre jdbc est configuré, vous devez modifier le fichier standalone.xml pour spécifier les propriétés du pilote et de la source de données.

  • Accédez à $JBOSS_HOME/standalone/configuration et modifiez le fichier standalone.xml.
  • Localisez la balise drivers et configurez votre pilote comme suit:
<driver name="Oracle" module="Oracle.jdbc">
    <xa-datasource-class>Oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
</driver>
  • Ajoutez maintenant la configuration de la source de données:
<datasource jndi-name="Java:jboss/datasources/Altis" pool-name="Altis" enabled="true">
  <connection-url>jdbc:Oracle:thin:@255.255.255.255:1521:sid</connection-url>
  <driver-class>Oracle.jdbc.OracleDriver</driver-class>
  <driver>Oracle</driver>
  <security>
    <user-name>username</user-name>
    <password>passwd</password>
  </security>
</datasource>

Configuration en ligne [Recommandé]

  • Accédez à la console de gestion (par défaut localhost: 9990/console)
  • Cliquez sur Configuration et développez Sources de données in Connector
  • Cliquez sur Ajouter (premier bouton à droite de la table des sources de données)
  • Remplissez le nom, dans votre cas Altis
  • Entrez le nom JNDI, dans votre cas, Java:jboss/datasources/Altis. Notez que le nom JNDI doit commencer par Java:/ ou Java:jboss/
  • Sélectionnez votre pilote, il devrait figurer dans le pilote détecté s'il a été configuré correctement.
  • Remplissez l'URL de connexion en tant que jdbc:Oracle:thin:@255.255.255.255:1521:sid
  • Remplissez le nom d'utilisateur et mot de passe.
  • Vous pouvez laisser le domaine de sécurité vide si vous le souhaitez ou en spécifier un.
  • Assurez-vous de tester la connexion avant de cliquer sur Terminé.
  • Une fois la source de données sauvegardée, sélectionnez-la dans la table et cliquez sur Enable
4

Dans le fichier jar module.xml, vous avez path="ojdbc6.jar" pour la balise racine de la ressource, mais vous dites que vous avez téléchargé ojdbc6-11.jar. 

Je pense que vous devez avoir path="ojdbc6-11.jar" dans votre module.xml

1
guest

En plus de la solution manuelle de Jean-François Savard, j’excluais également les fichiers jar de jboss-deployment-structure.xml. Ce n’est qu’alors que j’ai réussi à la faire fonctionner. Il suffit de se connecter ici car cela pourrait aider d’autres. Exemple de mon fichier jboss-deployment-structure.xml ci-dessous 

enter code here 

<!--exclude-subsystems>
<subsystem name="jpa" />
</exclude-subsystems-->
<!--http://mca.intranet.barclays.co.uk/confluence/display/MCA/Changes+required+in+MCA+for+aPaaS-->

<exclusions>
    <module name="org.codehaus.jackson.jackson-core-asl" />
    <module name="org.codehaus.jackson.jackson-mapper-asl" />
    <module name="org.Apache.log4j" />
    <module name="javax.persistence.api" />
    <module name="org.hibernate" />

</exclusions>
    <dependencies>

        <module name="javax.activation.api" export="true"/>
        <module name="javax.annotation.api" export="true"/>
        <module name="javax.ejb.api" export="true"/>
        <module name="javax.el.api" export="true"/>
        <module name="javax.enterprise.api" export="true"/>
        <module name="javax.enterprise.deploy.api" export="true"/>
        <module name="javax.inject.api" export="true"/>
        <module name="javax.interceptor.api" export="true"/>
        <module name="javax.jms.api" export="true"/>
        <module name="javax.jws.api" export="true"/>
        <module name="javax.mail.api" export="true"/>
        <module name="javax.management.j2ee.api" export="true"/>

        <module name="javax.resource.api" export="true"/>
        <module name="javax.rmi.api" export="true"/>
        <module name="javax.security.auth.message.api" export="true"/>
        <module name="javax.security.jacc.api" export="true"/>
        <module name="javax.servlet.api" export="true"/>
        <module name="javax.servlet.jsp.api" export="true"/>
        <module name="javax.transaction.api" export="true"/>
        <module name="javax.validation.api" export="true"/>
        <module name="javax.ws.rs.api" export="true"  services="export"/>
        <module name="javax.xml.bind.api" export="true"/>
        <module name="javax.xml.registry.api" export="true"/>
        <module name="javax.xml.soap.api" export="true"/>
        <module name="javax.xml.ws.api" export="true"/>
        <module name="org.jboss.as.jmx" />
        <!--module name="ibm.mq" /-->
        <module name="javax.api" export="true"/>

    </dependencies>
</deployment>

0
yallam

vérifie que $ JBOSS_HOME\modules\système\couches\base\com\Oracle\ojdbc6\main existe et que ojdbcXX.jar et module.xml nom du module = "com.Oracle.ojdbc" dans module.xml avec module = "com.Oracle.ojdbc" dans standalone.xml

par exemple module.xml ->

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="**com.Oracle.ojdbc6**">
    <resources>
        <resource-root path="ojdbc6.jar"/>
        <!-- Insert resources here -->
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>
standalone.xml -->

<datasource jndi-name="Java:/abc" pool-name="abc" enabled="true" use-Java-context="true">
                    <connection-url>jdbc:Oracle:thin:@localhost:1521:orcl</connection-url>
                    <driver>**Oracle**</driver>
                    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                    <security>
                        <user-name>a_user</user-name>
                        <password>pwdXXX</password>
                    </security>
                </datasource>

                <drivers>
                    <driver name="**Oracle**" module="**com.Oracle.ojdbc6**">
                    <driver-class>Oracle.jdbc.driver.OracleDriver</driver-class>
                    <xa-datasource-class>Oracle.jdbc.driver.OracleDriver</xa-datasource-class>
                    </driver>
                    </driver>
0
Amit S

Allez au panneau de la console de JBoss AS. Entrez le nom d'utilisateur et le mot de passe de l'utilisateur que vous avez créé à l'aide de adduser.bat . Ensuite, une page apparaîtra concernant toutes les configurations. Suivez maintenant les étapes ci-dessous:

1) Aller au profil

2) Sélectionnez les sources de données dans le volet de gauche

3) Cliquez ensuite sur add button dans la section source de données

4) Fournissez les détails tels que le nom, le nom Jndi, etc.

  • Nom: OracleDS
  • Jndi: Java: jboss/datasources/OracleDS

5) Cliquez sur le bouton suivant

6) Choisissez le pilote que vous avez déployé dans jboss à l'aide de standalone.xml

7) Cliquez sur le bouton suivant

8) Maintenant remplissez les détails ...

  • uRL de connexion: jdbc: Oracle: thin: @ [hôte]: 1521: [sid]
  • nom d'utilisateur: [utilisateur]
  • mot de passe: [pass]
  • domaine de sécurité: laissez le champ vide

9) Cliquez sur Terminé.

Maintenant, un message apparaîtra que "Source de données ajoutée avec succès" .

C'est tout....!!! 

0
Nishat Lakhani

Essayez d’utiliser driver-class dans le pilote en tant que <driver-class>Oracle.jdbc.OracleDriver</driver-class>

0
mohgly