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?
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>
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é.
$JBOSS_HOME/modules
et s'il n'existe pas déjà, créez l'arborescence de dossiers Oracle/jdbc/main
. odjbc6-11.jar
. <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.
$JBOSS_HOME/standalone/configuration
et modifiez le fichier standalone.xml.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>
<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é]
Altis
Java:jboss/datasources/Altis
. Notez que le nom JNDI doit commencer par Java:/
ou Java:jboss/
jdbc:Oracle:thin:@255.255.255.255:1521:sid
Enable
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
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>
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>
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.
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 ...
9) Cliquez sur Terminé.
Maintenant, un message apparaîtra que "Source de données ajoutée avec succès" .
C'est tout....!!!
Essayez d’utiliser driver-class dans le pilote en tant que <driver-class>Oracle.jdbc.OracleDriver</driver-class>