2017-01-02 1 views
2

Je veux utiliser apache ignite comme cache pour ma base de données et j'utilise persitent store pour cela. Ma base de données est Cassandra et pour la configuration, j'utilise cette wiki.persistant stocker avec apache enflammer xml configuration

Avec cette initialisation je lance IGNIT fenêtres:

ignite.bat cassandra-ignite-config.xml

-cassandra Ignite-config.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd"> 

    <!-- Cassandra connection settings --> 
    <import resource="connection-settings.xml" /> 

    <!-- Persistence settings for 'cache1' --> 
    <bean id="cache1_persistence_settings" class="org.apache.ignite.cache.store.cassandra.utils.persistence.KeyValuePersistenceSettings"> 
     <constructor-arg type="org.springframework.core.io.Resource" value="persistence-settings-1.xml" /> 
    </bean> 

    <!-- Persistence settings for 'cache2' --> 
    <bean id="cache2_persistence_settings" class="org.apache.ignite.cache.store.cassandra.utils.persistence.KeyValuePersistenceSettings"> 
     <constructor-arg type="org.springframework.core.io.Resource" value="classpath:org/apache/ignite/tests/persistence/blob/persistence-settings-3.xml" /> 
    </bean> 

    <!-- Ignite configuration --> 
    <bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> 
     <property name="cacheConfiguration"> 
      <list> 
       <!-- Configuring persistence for "cache1" cache --> 
       <bean class="org.apache.ignite.configuration.CacheConfiguration"> 
        <property name="name" value="cache1"/> 
        <property name="readThrough" value="true"/> 
        <property name="writeThrough" value="true"/> 
        <property name="cacheStoreFactory"> 
         <bean class="org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory"> 
          <property name="dataSourceBean" value="cassandraAdminDataSource"/> 
          <property name="persistenceSettingsBean" value="cache1_persistence_settings"/> 
         </bean> 
        </property> 
       </bean> 

       <!-- Configuring persistence for "cache2" cache --> 
       <bean class="org.apache.ignite.configuration.CacheConfiguration"> 
        <property name="name" value="cache2"/> 
        <property name="readThrough" value="true"/> 
        <property name="writeThrough" value="true"/> 
        <property name="cacheStoreFactory"> 
         <bean class="org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory"> 
          <property name="dataSourceBean" value="cassandraAdminDataSource"/> 
          <property name="persistenceSettingsBean" value="cache2_persistence_settings"/> 
         </bean> 
        </property> 
       </bean> 
      </list> 
     </property> 

     <!-- Explicitly configure TCP discovery SPI to provide list of initial nodes. --> 
     <property name="discoverySpi"> 
      <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> 
       <property name="ipFinder"> 
        <!-- 
         Ignite provides several options for automatic discovery that can be used 
         instead os static IP based discovery. For information on all options refer 
         to our documentation: http://apacheignite.readme.io/docs/cluster-config 
        --> 
        <!-- Uncomment static IP finder to enable static-based discovery of initial nodes. --> 
        <!--<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">--> 
        <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder"> 
         <property name="addresses"> 
          <list> 
           <!-- In distributed environment, replace with actual host IP address. --> 
           <value>127.0.0.1:47500..47509</value> 
          </list> 
         </property> 
        </bean> 
       </property> 
      </bean> 
     </property> 
    </bean> 
</beans> 

connexion setting.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd"> 

    <bean id="cassandraAdminCredentials" class="org.apache.ignite.tests.utils.CassandraAdminCredentials"/> 

    <bean id="loadBalancingPolicy" class="com.datastax.driver.core.policies.RoundRobinPolicy"/> 

    <bean id="contactPoints" class="org.apache.ignite.tests.utils.CassandraHelper" factory-method="getContactPointsArray"/> 

    <bean id="cassandraAdminDataSource" class="org.apache.ignite.cache.store.cassandra.utils.datasource.DataSource"> 
     <property name="credentials" ref="cassandraAdminCredentials"/> 
     <property name="contactPoints" ref="contactPoints"/> 
     <property name="readConsistency" value="ONE"/> 
     <property name="writeConsistency" value="ONE"/> 
     <property name="loadBalancingPolicy" ref="loadBalancingPolicy"/> 
    </bean> 
</beans> 

persistence- setting-1.xml:

<persistence keyspace="test1" table="my_table"> 
    <keyPersistence class="java.lang.Integer" strategy="PRIMITIVE" column="my_key"/> 
    <valuePersistence class="java.lang.String" strategy="PRIMITIVE" /> 
</persistence> 

mais j'ai cette erreur:

class org.apache.ignite.IgniteException: Failed to instantiate Spring XML application context (make sure all classes used in Spring configuration are present at CLASSPATH) [springUrl=file:~/config/cassandra-ignite-config.xml] at org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:927) at org.apache.ignite.Ignition.start(Ignition.java:350) at org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:302) Caused by: class org.apache.ignite.IgniteCheckedException: Failed to instantiate Spring XML application context (make sure all classes used in Spring configuration are present at CLASSPATH) [springUrl=file:~/config/cassandra-ignite-config.xml] at org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.applicationContext(IgniteSpringHelperImpl.java:387) at org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.loadConfigurations(IgniteSpringHelperImpl.java:104) at org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.loadConfigurations(IgniteSpringHelperImpl.java:98) at org.apache.ignite.internal.IgnitionEx.loadConfigurations(IgnitionEx.java:638) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:839) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:748) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:618) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:588) at org.apache.ignite.Ignition.start(Ignition.java:347) ... 1 more Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.ignite.tests.utils.CassandraAdminCredentials] for bean with name 'cassandraAdminCredentials' defined in URL [file:~/config/connection-settings.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.ignite.tests.utils.Cassan draAdminCredentials at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1325) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:623) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:592) at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1394) at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:957) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:705) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480) at org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.applicationContext(IgniteSpringHelperImpl.java:381) ... 9 more Caused by: java.lang.ClassNotFoundException: org.apache.ignite.tests.utils.CassandraAdminCredentials at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.springframework.util.ClassUtils.forName(ClassUtils.java:246) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:395) at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1346) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1317) ... 17 more Failed to start grid: Failed to instantiate Spring XML application context (make sure all classes used in Spring configuration are present at CLASSPATH) [springUrl=~/config/cassandra-ignite-config.xml] Note! You may use 'USER_LIBS' environment variable to specify your classpath. Press any key to continue . . .

il semble qu'il ya quelque chose manqué, mais je ne comprends pas.

Mise à jour:

J'utilise base-concepts et par exemple le numéro 4 de la examples. mais sachez que j'ai le problème de sérialisation pour l'exemple pojo.

erreur:

[16:24:11,033][SEVERE][tcp-disco-msg-worker-#2%null%][TcpDiscoverySpi] Failed to unmarshal discovery data for component: 1 
class org.apache.ignite.IgniteCheckedException: Failed to deserialize object with given class loader: [email protected] 
    at org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:128) 
    at org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:94) 
    at org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:142) 
    at org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:82) 
    at org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9779) 
    at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.onExchange(TcpDiscoverySpi.java:1716) 
    at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeAddedMessage(ServerImpl.java:4216) 
    at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2538) 
    at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2362) 
    at org.apache.ignite.spi.discovery.tcp.ServerImpl$MessageWorkerAdapter.body(ServerImpl.java:6436) 
    at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.body(ServerImpl.java:2445) 
    at org.apache.ignite.spi.IgniteSpiThread.run(IgniteSpiThread.java:62) 
Caused by: java.io.InvalidClassException: org.apache.ignite.cache.store.cassandra.persistence.KeyValuePersistenceSettings; local class incompatible: stream classdesc serialVersionUID = -3543390829981374356, local class serialVersionUID = 4263059111698998196 
    at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:616) 
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1630) 
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1781) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2018) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1942) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2018) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1942) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2018) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1942) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353) 
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373) 
    at java.util.ArrayList.readObject(ArrayList.java:791) 
    at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1058) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1909) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2018) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1942) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1808) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353) 
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373) 
    at org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:120) 
    ... 11 more 

Mise à jour 2:

mon fichier pom:

<?xml version="1.0" encoding="UTF-8"?> 
    <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/xsd/maven-4.0.0.xsd"> 
     <modelVersion>4.0.0</modelVersion> 

     <groupId>aryahamrah.ds</groupId> 
     <artifactId>igniteHello</artifactId> 
     <version>1.0-SNAPSHOT</version> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <configuration> 
         <source>1.8</source> 
         <target>1.8</target> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 


     <dependencies> 
      <dependency> 
       <groupId>org.apache.ignite</groupId> 
       <artifactId>ignite-core</artifactId> 
       <version>1.8.0</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.ignite</groupId> 
       <artifactId>ignite-spring</artifactId> 
       <version>1.8.0</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.ignite</groupId> 
       <artifactId>ignite-indexing</artifactId> 
       <version>1.8.0</version> 
      </dependency> 




      <!--for cassandra --> 

      <!-- https://mvnrepository.com/artifact/org.apache.cassandra/cassandra-all --> 
      <dependency> 
       <groupId>org.apache.cassandra</groupId> 
       <artifactId>cassandra-all</artifactId> 
       <version>3.9</version> 
      </dependency> 
      <!--&lt;!&ndash; https://mvnrepository.com/artifact/com.datastax.cassandra/cassandra-driver-core &ndash;&gt;--> 
      <dependency> 
       <groupId>com.datastax.cassandra</groupId> 
       <artifactId>cassandra-driver-core</artifactId> 
       <version>3.1.2</version> 
      </dependency> 

      <!-- https://mvnrepository.com/artifact/com.google.collections/google-collections --> 
      <dependency> 
       <groupId>com.google.collections</groupId> 
       <artifactId>google-collections</artifactId> 
       <version>1.0</version> 
      </dependency> 

      <!--&lt;!&ndash; https://mvnrepository.com/artifact/org.apache.ignite/ignite-cassandra-store &ndash;&gt;--> 
      <!--<dependency>--> 
       <!--<groupId>org.apache.ignite</groupId>--> 
       <!--<artifactId>ignite-cassandra-store</artifactId>--> 
       <!--<version>1.8.0</version>--> 
      <!--</dependency>--> 

      <!-- https://mvnrepository.com/artifact/org.apache.ignite/ignite-cassandra --> 
      <dependency> 
       <groupId>org.apache.ignite</groupId> 
       <artifactId>ignite-cassandra</artifactId> 
       <version>1.7.0</version> 
      </dependency> 


      <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> 
      <dependency> 
       <groupId>org.slf4j</groupId> 
       <artifactId>slf4j-api</artifactId> 
       <version>1.7.22</version> 
      </dependency> 

      <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple --> 
      <dependency> 
       <groupId>org.slf4j</groupId> 
       <artifactId>slf4j-simple</artifactId> 
       <version>1.7.22</version> 
      </dependency> 


     </dependencies> 
    </project> 

connexion setting.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd"> 


    <bean id="loadBalancingPolicy" class="com.datastax.driver.core.policies.TokenAwarePolicy"> 
     <constructor-arg type="com.datastax.driver.core.policies.LoadBalancingPolicy"> 
      <bean class="com.datastax.driver.core.policies.RoundRobinPolicy"/> 
     </constructor-arg> 
    </bean> 

    <bean id="cassandraAdminDataSource" class="org.apache.ignite.cache.store.cassandra.datasource.DataSource"> 
     <property name="readConsistency" value="ONE"/> 
     <property name="writeConsistency" value="ONE"/> 
     <property name="loadBalancingPolicy" ref="loadBalancingPolicy"/> 
    </bean> 

    <bean id="cassandraRegularDataSource" class="org.apache.ignite.cache.store.cassandra.datasource.DataSource"> 
     <property name="readConsistency" value="ONE"/> 
     <property name="writeConsistency" value="ONE"/> 
     <property name="loadBalancingPolicy" ref="loadBalancingPolicy"/> 
    </bean> 
</beans> 

Mise à jour 3:

quand je mets à rien du cache se passe, mais quand je veux, j'ai ces erreurs:

[15:16:16,008][SEVERE][pub-#53%null%][GridTaskWorker] Failed to obtain remote job result policy for result from ComputeTask.result(..) method (will fail the whole task): GridJobResultImpl [job=C4V2 [r=HelloWorld$$Lambda$8/[email protected]], sib=GridJobSiblingImpl [sesId=c92fc496951-0257bdb2-3066-4861-8c60-47febea167d5, jobId=d92fc496951-0257bdb2-3066-4861-8c60-47febea167d5, nodeId=f2c7d14b-401f-4aea-a9af-50deeb7cb85e, isJobDone=false], jobCtx=GridJobContextImpl [jobId=d92fc496951-0257bdb2-3066-4861-8c60-47febea167d5, timeoutObj=null, attrs={}], node=TcpDiscoveryNode [id=f2c7d14b-401f-4aea-a9af-50deeb7cb85e, addrs=[0:0:0:0:0:0:0:1, 127.0.0.1, 192.168.1.113], sockAddrs=[LT-88273/169.254.247.78:47500, /0:0:0:0:0:0:0:1:47500, /127.0.0.1:47500, /192.168.1.113:47500], discPort=47500, order=1, intOrder=1, lastExchangeTime=1483530374957, loc=false, ver=1.8.0#20161205-sha1:9ca40dbe, isClient=false], ex=class o.a.i.IgniteException: HelloWorld, hasRes=true, isCancelled=false, isOccupied=true] 
class org.apache.ignite.IgniteException: Remote job threw user exception (override or implement ComputeTask.result(..) method if you would like to have automatic failover for this exception). 
    at org.apache.ignite.compute.ComputeTaskAdapter.result(ComputeTaskAdapter.java:101) 
    at org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1030) 
    at org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1023) 
    at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6596) 
    at org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:1023) 
    at org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:841) 
    at org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:996) 
    at org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:843) 
    at org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:745) 
    at org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:608) 
    at org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:479) 
    at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: class org.apache.ignite.IgniteException: HelloWorld 
    at org.apache.ignite.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:447) 
    at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1108) 
    at org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1894) 
    at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1082) 
    at org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:710) 
    at org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:102) 
    at org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:673) 
    ... 3 more 
Caused by: class org.apache.ignite.IgniteCheckedException: HelloWorld 
    at org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9785) 
    at org.apache.ignite.internal.processors.job.GridJobWorker.initialize(GridJobWorker.java:428) 
    ... 9 more 
Caused by: class org.apache.ignite.binary.BinaryInvalidTypeException: HelloWorld 
    at org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:689) 
    at org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1480) 
    at org.apache.ignite.internal.binary.BinaryUtils.doReadClass(BinaryUtils.java:1418) 
    at org.apache.ignite.internal.binary.BinaryReaderExImpl.readClass(BinaryReaderExImpl.java:370) 
    at org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.readFixedType(BinaryFieldAccessor.java:828) 
    at org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read(BinaryFieldAccessor.java:639) 
    at org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:829) 
    at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1498) 
    at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1450) 
    at org.apache.ignite.internal.binary.BinaryUtils.doReadObject(BinaryUtils.java:1634) 
    at org.apache.ignite.internal.binary.BinaryReaderExImpl.readObject(BinaryReaderExImpl.java:1124) 
    at org.apache.ignite.internal.processors.closure.GridClosureProcessor$C4V2.readBinary(GridClosureProcessor.java:2230) 
    at org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:819) 
    at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1498) 
    at org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1450) 
    at org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:298) 
    at org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:100) 
    at org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:82) 
    at org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9779) 
    ... 10 more 
Caused by: java.lang.ClassNotFoundException: HelloWorld 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:348) 
    at org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8393) 
    at org.apache.ignite.internal.MarshallerContextAdapter.getClass(MarshallerContextAdapter.java:185) 
    at org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:680) 
    ... 28 more 

Répondre

1

Pour utiliser allumer comme un cache pour la base de données de cassandra, tout d'abord, il est préférable de lire ces documentations:

Maintenant, vous pouvez exécuter allumer avec les nœuds que vous voulez, mais vous devez tenir compte de deux choses:

  1. d'abord, vous devez exécuter enflammer avec le xml configuré pour cassandra connexion
  2. seconde, vous devez ajouter des fichiers jar dépendants pour l'exécution Ignite-cassandra

Pour la configuration cassandra simple, vous pouvez utiliser this et pour générer des fichiers jar de dépendance pour votre code, vous pouvez utiliser l'objectif maven-dependency-plugin avec copy-dependency pour générer des fichiers jar dans le dossier de dépendances de vos fichiers cibles.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>3.0.0</version> 
    <executions> 
     <execution> 
      <id>copy</id> 
      <phase>package</phase> 
      <goals> 
       <goal>copy-dependencies</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Après la compilation de votre code, vous pouvez ajouter le dossier de dépendance au chemin de libs Ignite ou ajouter au chemin USER_LIBS. Maintenant, vous devez implémenter votre code java. Pour cela, j'utilise le class PersonId et le configure avec this xml. [Astuce: vous devez ajouter votre fichier jar du projet au chemin d'allumage.]

Maintenant, vous pouvez exécuter votre allumage et ensuite exécuter your code et voir le résultat.

0

Pour utiliser Cassandra comme un magasin persistant, vous n'avez pas besoin CassandraAdminCredentials la cause c'est juste utilisé pour les tests. Exemple de configuration que vous pouvez consulter https://apacheignite-mix.readme.io/docs/ignite-with-apache-cassandra et https://apacheignite-mix.readme.io/docs/base-concepts

La classe CassandraAdminCredentials est uniquement disponible dans les sources de test d'unité d'allumage. Si vous voulez l'utiliser, vous devez construire Ignite à partir du code source. De cette façon, il créera ignite-cassandra-tests - $ {project.version} .zip où jar peut trouver le fichier jar contenant toutes les classes de test.

+0

Pour plus de détails sur la construction de ignite-cassandra-tests - $ {project.version} .zip regardez la liste des utilisateurs [http://apache-ignite-users.70518.x6.nabble.com/Cassandra-basic- setup-td9154.html] (http://apache-ignite-users.70518.x6.nabble.com) –

+0

tnx pour votre aide. J'utilise [base-concepts] (https://apacheignite-mix.readme.io/docs/base-concepts) et l'exemple numéro 4 des [exemples] (https://apacheignite-mix.readme.io/docs/ exemples). mais sachez que j'ai le problème de sérialisation pour l'exemple pojo – Divuneh

+0

Assurez-vous que tous les nœuds Ignite démarrent sur la même version JVM et que les instances Ignite contiennent ignite-cassandra * .jar dans classpath. –