J'utilise Kundera avec Datastax DS Driver pour la connexion Cassandra. Sur persistence.xml, je définis comme le port 9042.Kundera avec le port de connexion du pilote Datastax DS
Cependant, je remarque que ce Kundera n'a pas réussi à se connecter à Cassandra:
Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 0.503 sec <<< FAILURE! - in com.abc.DataServiceImplTest
writeReadTest(com.abc.DataServiceImplTest) Time elapsed: 0.38 sec <<< ERROR!
com.impetus.kundera.configure.schema.SchemaGenerationException: Error while opening socket, Caused by: .
at com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.initiateClient(CassandraSchemaManager.java:718)
at com.impetus.kundera.configure.schema.api.AbstractSchemaManager.exportSchema(AbstractSchemaManager.java:112)
at com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.exportSchema(CassandraSchemaManager.java:166)
at com.impetus.kundera.configure.SchemaConfiguration.configure(SchemaConfiguration.java:191)
at com.impetus.kundera.configure.ClientMetadataBuilder.buildClientFactoryMetadata(ClientMetadataBuilder.java:48)
at com.impetus.kundera.persistence.EntityManagerFactoryImpl.configureClientFactories(EntityManagerFactoryImpl.java:408)
at com.impetus.kundera.persistence.EntityManagerFactoryImpl.configure(EntityManagerFactoryImpl.java:161)
at com.impetus.kundera.persistence.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:135)
at com.impetus.kundera.KunderaPersistence.createEntityManagerFactory(KunderaPersistence.java:85)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
Et une fois que j'activé le port Thrift (9160)/etc /cassandra/cassandra.yaml, les choses commencent à marcher.
Voici le persistence.xml:
<persistence-unit name="cassandra_pu">
<provider>com.impetus.kundera.KunderaPersistence</provider>
<class>com.abc.Person</class>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="kundera.nodes" value="localhost" />
<property name="kundera.port" value="9042" />
<property name="kundera.keyspace" value="testkeyspace" />
<property name="kundera.ddl.auto.prepare" value="update" />
<property name="kundera.dialect" value="cassandra" />
<property name="kundera.client.lookup.class"
value="com.impetus.kundera.client.cassandra.dsdriver.DSClientFactory" />
<property name="kundera.annotations.scan.package" value="com.abc.impl"/>
</properties>
Je me demande si je dois permettre à 9160, même avec l'aide de DS-pilote?
Merci!
Kundera prend en charge les opérations CRUD à l'aide du pilote de datastax lors de l'utilisation du module datastax. Mais peu de fonctionnalités telles que la génération automatique de schéma sont prises en charge uniquement avec le port Thrift. –
Merci. Cela signifie que même si j'utilise DSDriver, le serveur RPC pour Thrift doit rester ouvert, n'est-ce pas? Merci. – FrankC
Oui, c'est correct ... –