ERREUR de Nouvelles manquant/dépendances non satisfaites: (Ne peut pas configurer la source de données)
J'ai une application web en utilisant JSF(Primefaces), JPA(Hibernate) et les Ejb et ont de la difficulté à configurer la source de données sur JBoss . J'obtiens l'erreur suivante:
2012/10/31 07:20:17,948 INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) JBAS010404: Deploying non-JDBC-compliant driver class com.mysql.jdbc.Driver (version 5.1)
2012/10/31 07:20:18,836 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "ROOT.war" was rolled back with failure message {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"ROOT.war#test\"jboss.naming.context.java.jboss.datasources.MysqlDSMissing[jboss.persistenceunit.\"ROOT.war#test\"jboss.naming.context.java.jboss.datasources.MysqlDS]"]}
2012/10/31 07:20:19,252 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015877: Stopped deployment ROOT.war in 413ms
2012/10/31 07:20:19,255 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
JBAS014775: New missing/unsatisfied dependencies:
service jboss.naming.context.java.jboss.datasources.MysqlDS (missing) dependents: [service jboss.persistenceunit."ROOT.war#test"]
2012/10/31 07:20:19,334 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.persistenceunit.\"ROOT.war#test\"jboss.naming.context.java.jboss.datasources.MysqlDSMissing[jboss.persistenceunit.\"ROOT.war#test\"jboss.naming.context.java.jboss.datasources.MysqlDS]"]}}}
Ci-dessous vous pouvez voir mon persistence.xml
, stanadlone.xml
et pom.xml
. Je suis pas certains de la dépendance dans le pom.xml?
Persistence.xml
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/MysqlDS</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.max_fetch_depth" value="3"/>
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
Standalone.xml
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" enabled="true" use-java-context="true" pool-name="H2DS">
<connection-url>jdbc:h2:${jboss.server.data.dir}/test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<datasource jndi-name="java:jboss/datasources/MysqlDS" enabled="${mysql.enabled}" use-java-context="true" pool-name="MysqlDS">
<connection-url>jdbc:mysql://127.5.54.1:3306/researchprojects</connection-url>
<driver>mysql</driver>
<security>
<user-name>admin</user-name>
<password>*******</password>
</security>
<validation>
<check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
</validation>
</datasource>
<datasource jndi-name="java:jboss/datasources/PostgreSQLDS" enabled="${postgresql.enabled}" use-java-context="true" pool-name="PostgreSQLDS" use-ccm="true">
<connection-url>jdbc:postgresql://${env.OPENSHIFT_DB_HOST}:${env.OPENSHIFT_DB_PORT}/${env.OPENSHIFT_APP_NAME}</connection-url>
<driver>postgresql</driver>
<security>
<user-name>${env.OPENSHIFT_DB_USERNAME}</user-name>
<password>${env.OPENSHIFT_DB_PASSWORD}</password>
</security>
<validation>
<check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
</validation>
</datasource>
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<driver name="mysql" module="com.mysql.jdbc">
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
<driver name="postgresql" module="org.postgresql.jdbc">
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
</driver>
</drivers>
</datasources>
Pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>openshifttest</groupId>
<artifactId>openshifttest</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>openshifttest</name>
<repositories>
<repository>
<id>scala</id>
<name>Scala Tools</name>
<url>http://scala-tools.org/repo-releases/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>prime-repo</id>
<name>PrimeFaces Maven Repository</name>
<url>http://repository.primefaces.org</url>
<layout>default</layout>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>scala</id>
<name>Scala Tools</name>
<url>http://scala-tools.org/repo-releases/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<version>1.0.0.Final</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>3.4.1</version>
</dependency>
</dependencies>
<profiles>
<profile>
<!-- When built in OpenShift the 'openshift' profile will be used when invoking mvn. -->
<!-- Use this profile for any OpenShift specific customization your app will need. -->
<!-- By default that is to put the resulting archive into the 'deployments' folder. -->
<!-- http://maven.apache.org/guides/mini/guide-building-for-different-environments.html -->
<id>openshift</id>
<build>
<finalName>openshifttest</finalName>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<outputDirectory>deployments</outputDirectory>
<warName>ROOT</warName>
</configuration>
</plugin>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<executions>
<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
<phase>compile</phase>
</execution>
<execution>
<id>test-compile</id>
<goals>
<goal>testCompile</goal>
</goals>
<phase>test-compile</phase>
</execution>
<execution>
<phase>process-resources</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
Quelqu'un pourrait-il me dire ce que je fais mal ?
Vous devez vous connecter pour publier un commentaire.
avez-vous activer la source de données mysql? en tant que par défaut il est désactivé.
partie intégrante de la configuration
a drapeau ${mysql.activé} qui est de la propriété du système qui permet à la source de données dans le cas où il est mysql est activé.
prendre un coup d'oeil au guide http://jaitechwriteups.blogspot.com/2011/08/deploy-java-ee-application-on-openshift.html
et de la recherche pour "à l'Aide de la base de données MySQL disponible dans OpenShift Express" chapitre
qui vous indique quelle partie de la configuration que vous êtes absent.
Peu en retard, mais après l'obtention de cette erreur et de la vérification des tas de choses, il s'est avéré que j'avais tout simplement quitté la définition du conducteur dans standalone.xml
<drivers>
<driver name="mysql" module="com.mysql">
<xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class>
</driver>
</drivers>
Donc, étapes de vérification sont les suivants:
ajouter des fichiers jar mysql-connector-java-5.1.13-bin.jar pour jboss-eap-6.1/modules/com/mysql/main
ajouter module.xml fichier jboss-eap-6.1/modules/com/mysql/main
`
`
3.ajoutez à cela standalone.xml
`
4. in your web app persistance.xml, add this line
java:jboss/datasources/MySqlDS
`
Espère que cela aide quelqu'un!
Vous avez besoin pour installer correctement le pilote JDBC comme JBoss 7 module.
un. Créer un dossier JBOSS_HOME\modules\com\mysql\main (oui, principal sous-dossier doit être là)
b. copie du pilote JDBC pour ce dossier
c. Créez dans ce dossier module.xml fichier avec le contenu suivant:
où
mysql-connector-java-5.1.6-bin.jar
est à remplacer par le nom de votre pilote. Veuillez noter que pour ce type de configuration du module, vous avez besoin de changer votremodule
nom dans la définition de pilote pourcom.mysql
(qui est une sorte de convention de nom) ou tout simplement renommer le nom du module dans module.xml.Après le redémarrage du serveur, vous devriez voir dans JBOSS_HOME\modules\com\mysql\main un nouveau fichier .index.
Je l'ai testé que sur JBoss 7.1.1.Final
Si vous spécifiez la source de données comme une ressource de référence en web.xml puis correspondre au nom exactement avec cela à l'standalone.xml (ou domain.xml):
web.xml:
standalone.xml:
Dans mon cas avait une question en orthographe persistence.xml
a de match:
Eu le même problème. Après plusieurs heures, j'ai trouvé la solution:
https://docs.jboss.org/author/display/AS7/How+faire+je+migrer+mon+demande+de+AS5+ou+AS6+à+AS7
Doh!
Vous devriez envisager d'essayer de mettre en place différentes version de driver mysql.
J'espère que vous trouverez cela utile,
Grâce.
Si vous êtes OK avec vos sources de données les configs.
Assurez-vous que vous avez installé jboss kit de développement eclipse eclipse marché.
Il va travailler.