2017-04-18 6 views
0

Après des jours d'erros j'espère que n'importe qui peut m'aider. Je veux connecter un cassandra (3.9) par Hibernate (5.1) à Wildfly Swarm (10.1.0). J'ai suivi l'instruction de How to package Hibernate OGM applications for WildFly 10 et ajouté tous les modules nécessaires au projet.Relier Cassandra par Hibernate à Wildfly

>>> Project repository on Github <<<

Après cela, j'ai ajouté toutes les dépendances nécessaires à la pom.xml:

<packaging>war</packaging> 

<dependencies> 
    <!-- Java EE 7 dependency --> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
     <version>7.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <!-- WildFly Swarm Fractions --> 


    <dependency> 
     <groupId>org.hibernate.ogm</groupId> 
     <artifactId>hibernate-ogm-core</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.ogm</groupId> 
     <artifactId>hibernate-ogm-cassandra</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-search-orm</artifactId> 
    </dependency> 
</dependencies> 
<build> 
    <finalName>demo</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.wildfly.swarm</groupId> 
      <artifactId>wildfly-swarm-plugin</artifactId> 
      <version>${version.wildfly.swarm}</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>package</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Ensuite, j'ai ajouté le jboss-deplyoment-structure.xml:

<jboss-deployment-structure> 
<deployment> 
    <dependencies> 
     <module name="org.hibernate.ogm" slot="5.1" services="export" /> 
     <module name="org.hibernate.ogm.cassandra" slot="5.1" services="export" /> 
    </dependencies> 
</deployment> 

Enfin et surtout, j'ai ajouté le persistence.xml:

<persistence 
    xmlns="http://java.sun.com/xml/ns/persistence" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
    version="2.0"> 

<persistence-unit name="cassandra_fhe_prd_pu" transaction-type="JTA"> 
    <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider> 

    <exclude-unlisted-classes>false</exclude-unlisted-classes> 

    <properties> 
     <property name="jboss.as.jpa.providerModule" value="org.hibernate:5.1"/> 

     <property name="hibernate.transaction.jta.platform" value="JBossTS" /> 

     <property name="hibernate.ogm.datastore.provider" value="cassandra_experimental"/> 


     <property name="hibernate.ogm.datastore.hosts" value="localhost"/> 
     <property name="hibernate.ogm.datastore.database" value="any"/> 
    </properties> 
</persistence-unit> 

Chaque message que je lis me dit c'est tout ce que je dois faire. Mais si je commence à l'application le message suivant est affiché:

ERROR [org.jboss.as.controller.management-operation] (main) WFLYCTL0013: Operation ("add") failed - address: (("deployment" => "demo.war")) - failure description: { 
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.null"], 
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"demo.war#cassandra_fhe_prd_pu\" is missing [jboss.naming.context.java.null]"] 
} 

==========================

de sortie complète :

2017-04-18 13:17:34,022 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction:      JCA - STABLE   org.wildfly.swarm:jca:2017.4.0 
    2017-04-18 13:17:34,022 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction:     Logging - STABLE   org.wildfly.swarm:logging:2017.4.0 
    2017-04-18 13:17:34,022 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction:   Bean Validation - STABLE   org.wildfly.swarm:bean-validation:2017.4.0 
    2017-04-18 13:17:34,022 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction:     JAX-RS - STABLE   org.wildfly.swarm:jaxrs:2017.4.0 
    2017-04-18 13:17:34,022 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction:      JPA - STABLE   org.wildfly.swarm:jpa:2017.4.0 
    2017-04-18 13:17:34,022 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction:  CDI Configuration - STABLE   org.wildfly.swarm:cdi-config:2017.4.0 
    2017-04-18 13:17:34,022 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction:      CDI - STABLE   org.wildfly.swarm:cdi:2017.4.0 
    2017-04-18 13:17:34,022 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction:    Datasources - STABLE   org.wildfly.swarm:datasources:2017.4.0 
    2017-04-18 13:17:34,022 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction:    Transactions - STABLE   org.wildfly.swarm:transactions:2017.4.0 
    2017-04-18 13:17:34,022 INFO [org.wildfly.swarm] (main) WFSWARM0013: Installed fraction:     Undertow - STABLE   org.wildfly.swarm:undertow:2017.4.0 
    2017-04-18 13:17:40,410 WARN [org.wildfly.swarm.datasources] (main) WFSWARM1005: Not creating a default datasource due to lack of JDBC driver 
    2017-04-18 13:17:40,894 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.6.Final 
    2017-04-18 13:17:40,957 INFO [org.jboss.as] (MSC service thread 1-6) WFLYSRV0049: WildFly Swarm 2017.4.0 (WildFly Core 2.2.1.Final) starting 
    2017-04-18 13:17:41,144 INFO [org.wildfly.swarm] (MSC service thread 1-6) WFSWARM0019: Install MSC service for command line args: [] 
    2017-04-18 13:17:50,956 WARN [org.jboss.as.txn] (ServerService Thread Pool -- 26) WFLYTX0013: Node identifier property is set to the default value. Please make sure it is unique. 
    2017-04-18 13:17:50,956 INFO [org.jboss.as.naming] (ServerService Thread Pool -- 28) WFLYNAM0001: Activating Naming Subsystem 
    2017-04-18 13:17:50,956 INFO [org.jboss.as.security] (ServerService Thread Pool -- 24) WFLYSEC0002: Activating Security Subsystem 
    2017-04-18 13:17:50,971 INFO [org.jboss.as.security] (MSC service thread 1-2) WFLYSEC0001: Current PicketBox version=4.9.6.Final 
    2017-04-18 13:17:50,971 INFO [org.wildfly.extension.io] (ServerService Thread Pool -- 18) WFLYIO001: Worker 'default' has auto-configured to 16 core threads with 128 task threads based on your 8 available processors 
    2017-04-18 13:17:51,002 INFO [org.jboss.as.connector] (MSC service thread 1-1) WFLYJCA0009: Starting JCA Subsystem (WildFly/IronJacamar 1.3.4.Final) 
    2017-04-18 13:17:51,018 INFO [org.jboss.as.naming] (MSC service thread 1-6) WFLYNAM0003: Starting Naming Service 
    2017-04-18 13:17:51,409 INFO [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0003: Undertow 1.4.11.Final starting 
    2017-04-18 13:17:51,424 INFO [org.xnio] (MSC service thread 1-8) XNIO version 3.4.3.Final 
    2017-04-18 13:17:51,424 INFO [org.xnio.nio] (MSC service thread 1-8) XNIO NIO Implementation Version 3.4.3.Final 
    2017-04-18 13:17:51,487 INFO [org.wildfly.extension.undertow] (MSC service thread 1-5) WFLYUT0012: Started server default-server. 
    2017-04-18 13:17:51,518 INFO [org.wildfly.extension.undertow] (MSC service thread 1-4) WFLYUT0006: Undertow HTTP listener default listening on [0:0:0:0:0:0:0:0]:8080 
    2017-04-18 13:17:52,624 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Swarm 2017.4.0 (WildFly Core 2.2.1.Final) started in 11761ms - Started 110 of 120 services (21 services are lazy, passive or on-demand) 
    2017-04-18 13:18:04,528 INFO [org.wildfly.swarm.runtime.deployer] (main) deploying demo.war 
    2017-04-18 13:18:04,544 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0027: Starting deployment of "demo.war" (runtime-name: "demo.war") 
    2017-04-18 13:18:20,191 INFO [org.jboss.as.jpa] (MSC service thread 1-7) WFLYJPA0002: Read persistence.xml for cassandra_fhe_prd_pu 
    2017-04-18 13:18:25,686 WARN [org.jboss.as.dependency.private] (MSC service thread 1-8) WFLYSRV0018: Deployment "deployment.demo.war" is using a private module ("org.jboss.ironjacamar.jdbcadapters:main") which may be changed or removed in future versions without notice. 
    2017-04-18 13:18:25,686 WARN [org.jboss.as.dependency.private] (MSC service thread 1-8) WFLYSRV0018: Deployment "deployment.demo.war" is using a private module ("org.jboss.jts:main") which may be changed or removed in future versions without notice. 
    2017-04-18 13:18:26,201 ERROR [org.jboss.as.controller.management-operation] (main) WFLYCTL0013: Operation ("add") failed - address: (("deployment" => "demo.war")) - failure description: { 
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.null"], 
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"demo.war#cassandra_fhe_prd_pu\" is missing [jboss.naming.context.java.null]"] 
    } 
    2017-04-18 13:18:26,201 ERROR [org.jboss.as.server] (main) WFLYSRV0021: Deploy of deployment "demo.war" was rolled back with the following failure message: 
    { 
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.null"], 
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"demo.war#cassandra_fhe_prd_pu\" is missing [jboss.naming.context.java.null]"] 
    } 
    2017-04-18 13:18:27,045 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) WFLYSRV0028: Stopped deployment demo.war (runtime-name: demo.war) in 838ms 
    2017-04-18 13:18:27,045 INFO [org.jboss.as.controller] (main) WFLYCTL0183: Service status report 
    WFLYCTL0184: New missing/unsatisfied dependencies: 
    service jboss.naming.context.java.null (missing) dependents: [service jboss.persistenceunit."demo.war#cassandra_fhe_prd_pu"] 
    service jboss.persistenceunit."demo.war#cassandra_fhe_prd_pu" (missing) dependents: [service jboss.deployment.unit."demo.war".POST_MODULE] 

    2017-04-18 13:18:27,045 INFO [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0008: Undertow HTTP listener default suspending 
    2017-04-18 13:18:27,045 INFO [org.wildfly.extension.undertow] (MSC service thread 1-2) WFLYUT0007: Undertow HTTP listener default stopped, was bound to [0:0:0:0:0:0:0:0]:8080 
    2017-04-18 13:18:27,045 INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0004: Undertow 1.4.11.Final stopping 
    2017-04-18 13:18:27,061 INFO [org.jboss.as] (MSC service thread 1-7) WFLYSRV0050: WildFly Swarm 2017.4.0 (WildFly Core 2.2.1.Final) stopped in 7ms 
    2017-04-18 13:18:27,076 INFO [org.jboss.weld.Bootstrap] (main) WELD-ENV-002001: Weld SE container internal shut down 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) java.lang.reflect.InvocationTargetException 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at java.lang.reflect.Method.invoke(Method.java:498) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.bootstrap.MainInvoker.invoke(MainInvoker.java:39) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.bootstrap.Main.run(Main.java:46) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.bootstrap.Main.main(Main.java:37) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) Caused by: org.wildfly.swarm.container.DeploymentException: org.wildfly.swarm.container.DeploymentException: WFSWARM0004: Deployment failed: {"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.null"],"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"demo.war#cassandra_fhe_prd_pu\" is missing [jboss.naming.context.java.null]"]} 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:278) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:94) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.container.runtime.RuntimeDeployer$Proxy$_$$_WeldClientProxy.deploy(Unknown Source) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.Swarm.deploy(Swarm.java:443) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.Swarm.main(Swarm.java:611) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) ... 7 more 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) Caused by: org.wildfly.swarm.container.DeploymentException: WFSWARM0004: Deployment failed: {"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.null"],"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"demo.war#cassandra_fhe_prd_pu\" is missing [jboss.naming.context.java.null]"]} 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:273) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) ... 11 more 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) Exception in thread "main" java.lang.reflect.InvocationTargetException 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at java.lang.reflect.Method.invoke(Method.java:498) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.bootstrap.MainInvoker.invoke(MainInvoker.java:39) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.bootstrap.Main.run(Main.java:46) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) at org.wildfly.swarm.bootstrap.Main.main(Main.java:37) 
    2017-04-18 13:18:27,076 ERROR [stderr] (main) Caused by: org.wildfly.swarm.container.DeploymentException: org.wildfly.swarm.container.DeploymentException: WFSWARM0004: Deployment failed: {"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.null"],"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"demo.war#cassandra_fhe_prd_pu\" is missing [jboss.naming.context.java.null]"]} 
    2017-04-18 13:18:27,092 ERROR [stderr] (main) at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:278) 
    2017-04-18 13:18:27,092 ERROR [stderr] (main) at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:94) 
    2017-04-18 13:18:27,092 ERROR [stderr] (main) at org.wildfly.swarm.container.runtime.RuntimeDeployer$Proxy$_$$_WeldClientProxy.deploy(Unknown Source) 
    2017-04-18 13:18:27,092 ERROR [stderr] (main) at org.wildfly.swarm.Swarm.deploy(Swarm.java:443) 
    2017-04-18 13:18:27,092 ERROR [stderr] (main) at org.wildfly.swarm.Swarm.main(Swarm.java:611) 
    2017-04-18 13:18:27,092 ERROR [stderr] (main) ... 7 more 
    2017-04-18 13:18:27,092 ERROR [stderr] (main) Caused by: org.wildfly.swarm.container.DeploymentException: WFSWARM0004: Deployment failed: {"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.null"],"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.persistenceunit.\"demo.war#cassandra_fhe_prd_pu\" is missing [jboss.naming.context.java.null]"]} 
    2017-04-18 13:18:27,092 ERROR [stderr] (main) at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:273) 
    2017-04-18 13:18:27,092 ERROR [stderr] (main) ... 11 more 

    Process finished with exit code 1 

Quelqu'un peut-il me dire ce que je fais mal?

EDIT

Après commentaire j'ai ajouté l'emballage JDBC DataStax comme suit:

projet stages.yml

swarm: 
    datasources: 
    data-sources: 
     CassandraDS: 
     driver-name: cassandra 
     connection-url: jdbc:cassandra://localhost:9160/system?version=3.9 
    jdbc-drivers: 
     cassandra: 
     driver-class-name: org.apache.cassandra2.cql.jdbc.CassandraDriver 
     xa-datasource-name: com.github.adejanovski.cassandra.jdbc.CassandraDataSource 
     driver-module-name: org.github.adejanovski.cassandra 

module.xml

<module xmlns="urn:jboss:module:1.3" name="org.github.adejanovski.cassandra"> 
    <resources> 
     <resource-root path="cassandra-jdbc-wrapper-3.1.0.jar"/> 
     <resource-root path="slf4j-jdk14-1.7.24.jar"/> 
    </resources> 

    <dependencies> 
     <module name="javax.api"/> 
     <module name="javax.transaction.api"/> 
     <module name="sun.jdk" export="true" > 
      <imports> 
       <include path="sun/misc/Unsafe" /> 
      </imports> 
     </module> 
    </dependencies> 
</module> 

jboss- deployment-structure.xml

<jboss-deployment-structure> 
    <deployment> 
     <dependencies> 
      <module name="org.hibernate.ogm" slot="5.1" services="export" /> 
      <module name="org.hibernate.ogm.cassandra" slot="5.1" services="export" /> 
      <module name="org.github.adejanovski.cassandra" slot="main" services="export" /> 
     </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

et persistence.xml

<persistence 
    xmlns="http://java.sun.com/xml/ns/persistence" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
    version="2.0"> 

    <persistence-unit name="cassandra_fhe_prd_pu" transaction-type="JTA"> 
     <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider> 
     <jta-data-source>java:/CassandraDS</jta-data-source> 
     <exclude-unlisted-classes>false</exclude-unlisted-classes> 
     <properties> 
      <property name="jboss.as.jpa.providerModule" value="org.hibernate:5.1"/> 

      <property name="hibernate.transaction.jta.platform" value="JBossTS"/> 

      <property name="hibernate.ogm.datastore.provider" value="cassandra_experimental"/> 

      <property name="hibernate.ogm.datastore.hosts" value="localhost"/> 
      <property name="hibernate.ogm.datastore.database" value="fhe"/> 
     </properties> 
    </persistence-unit> 
</persistence> 

Maintenant, le message d'erreur dit:

WFLYCTL0013: Operation ("add") failed - address: ([ 
    ("subsystem" => "datasources"), 
    ("data-source" => "CassandraDS") 
]) - failure description: { 
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.jdbc-driver.cassandra"], 
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [ 
     "org.wildfly.data-source.CassandraDS is missing [jboss.jdbc-driver.cassandra]", 
     "jboss.driver-demander.java:jboss/datasources/CassandraDS is missing [jboss.jdbc-driver.cassandra]" 
    ] 
} 
+0

Avez-vous vérifié celui-ci? https://developer.jboss.org/thread/274131?_sscc = t Il semblerait que vous ne manquiez qu'une configuration de wildfly, car le pilote jdbc de cassandra est introuvable. –

+0

Oui j'avais. Je l'ai fait mais la nouvelle erreur dit que le module pour le pilote est manquant. –

+0

ok c'est un début;) pouvez-vous mettre à jour la question et mettre une nouvelle erreur po –

Répondre

0

Pour l'instant je trouve une solution. Je ne sais pas si c'est la meilleure façon mais ça marche:

D'abord j'ajoute les fractions requises sans essaim jpa. Après cela, je supprime le cassandra-jdbc-wrapper. Maintenant, hibernate crée la connexion directement et conserve l'entité. Le seul mauvais pense que je dois faire était d'ajouter la classe d'entité au xml de persistance.

Le projet de travail est poussé vers le référentiel. Je vais jouer avec l'essaim et j'espère trouver un meilleur moyen.