2012-09-21 5 views
0

Je travaille sur une application Web avec un seul projet WAR. Il utilise JPA et a un DataSource que je dois configurer pour fonctionner sur JBOSS 7. La base de données est Oracle.Jboss 7 - Oracle Datasource ne fonctionne pas

Je reçois cette erreur:

JBAS014775: New missing/unsatisfied dependencies: 
     service jboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDB 

J'ai suivi les instructions d'utilisation dataSource sur Jboss. J'ai donc ces configurations:

{} JBOSS_HOME /modules/com/oracle/ojdbc6/main/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"/> 
    </resources> 
    <dependencies> 
     <module name="javax.api" /> 
     <module name="javax.transaction.api"/> 
     <module name="javax.servlet.api" optional="true"/> 
    </dependencies> 
</module> 

ojdbc6.jar existe et le nom est correct.

standalone.xml

<datasources> 

       <datasource jndi-name="java:jboss/jdbc/batchAdminDB" pool-name="batchAdminDB" enabled="true" use-java-context="true"> 
        <connection-url>jdbc:oracle:thin:@HOST:PORT/xe</connection-url> 
        <driver>oracle</driver> 
        <security> 
         <user-name>USER</user-name> 
         <password>PASSW</password> 
        </security> 
       </datasource> 
       <drivers> 
        <driver name="oracle" module="com.oracle.ojdbc6"> 
         <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> 
         <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class> 
        </driver> 
       </drivers> 
      </datasources> 

Sur l'application: META-INF/persistence.xml:

<persistence-unit name="batchAdminEM" transaction-type="JTA"> 
    <jta-data-source>java:jboss/jdbc/batchAdminDB</jta-data-source> 

    <class>...</class> 
...</persistence-unit> 

Lorsque Jboss commence (sans l'application), il se lire (lié) la source de données. L'erreur survient lorsque j'essaie de déployer l'application, elle ne fonctionne pas.

Plus de StackTrace pour aider:

15:57:46,888 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) JBAS010400: Bound data source [java:jboss/jdbc/batchAdminDB] 
... 
15:57:52,356 INFO [org.hibernate.ejb.Ejb3Configuration] (MSC service thread 1-2) HHH000204: Processing PersistenceUnitInfo [ 
    name: batchAdminEM 
    ...] 
15:57:53,649 ERROR [org.jboss.as] (MSC service thread 1-1) JBAS015875: JBoss AS 7.1.1.Final "Brontes" started (with errors) in 13255ms - Started 325 of 568 services (165 services failed or missing dependencies, 76 services are passive or on-demand) 
15:57:53,861 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "BatchAdmin.war" was rolled back with failure message {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.BatchAdmin.BatchAdmin.env.jboss.jdbc.batchAdminDBjboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDBMissing[jboss.naming.context.java.module.BatchAdmin.BatchAdmin.env.jboss.jdbc.batchAdminDBjboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDB]"]} 
JBAS014775: New missing/unsatisfied dependencies: 
     service jboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDB (missing) dependents: [service jboss.naming.context.java.module.BatchAdmin.BatchAdmin.env.jboss.jdbc.batchAdminDB] 

15:57:53,934 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.BatchAdmin.BatchAdmin.env.jboss.jdbc.batchAdminDBjboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDBMissing[jboss.naming.context.java.module.BatchAdmin.BatchAdmin.env.jboss.jdbc.batchAdminDBjboss.naming.context.java.jboss.resources.jboss.jdbc.batchAdminDB]"]}}} 
+0

Je l'ai vu http://stackoverflow.com/questions/9481510/deploying-ejb-over-jboss-7-1, http: // stackoverflow.com/questions/10102826/impossible de définir-oracle-datasource-sur-jboss-as-7 et d'autres, mais aucun d'entre eux a ensuite travaillé pour moi –

Répondre

0

Après une longue période, j'ai trouvé quel était le problème.

web.xml contient une configuration qui était utilisée auparavant sur Tomcat.

<resource-ref> 
    <description>DB Connection</description> 
    <res-ref-name>jboss/jdbc/batchAdminDB</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

Cette configuration était probablement source de confusion pour Jboss. Ce n'est plus nécessaire.

La solution:
Il suffit de commenter ou de supprimer cette partie (ressource-ref).

Un lien utile (en portugais):
http://www.guj.com.br/java/256103-resolvido-seam-3--hibernate-4--jbossas7-erro-de-datasource

0

Vous avez utilisé mauvais format d'URL de connexion. Avec xe comme SID, vous devez utiliser:

jdbc:oracle:thin:@HOST:PORT:xe 

ou

jdbc:oracle:thin:@//HOST:PORT/xe 

Vérifiez here pour plus d'informations.

ADD

Vous devez également changer une ligne dans votre fichier module.xml ainsi:

<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6"> 
+0

Salut Reza. Je l'ai changé comme vous l'avez dit, mais l'erreur continue pareil. –

+0

Salut @Reicardo, je pense que j'ai eu le même problème il y a un moment et c'était à cause de certains espaces supplémentaires indésirables dans mon fichier module.xml. J'ai finalement fini par copier un fichier à partir de l'un des modules de travail, puis en changeant le contenu avec précaution afin de ne pas ajouter d'espaces supplémentaires. De plus, je pense que le nom correct de la classe Driver doit être "oracle.jdbc.OracleDriver". Essayez ces deux et voir ce qui se passe ensuite. – RGO

+0

Merci d'aider @Reza. J'ai revérifié les chaînes dans chaque fichier de configuration. Ils vont bien. J'ai également changé de classe de pilote Oracle. Problème persiste –