Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-14481

Missing dependencies for JClouds discovery (ignite-cloud)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.10
    • None
    • integrations
    • None
    • Docs Required, Release Notes Required

    Description

      We seem to skip some essential dependencies for jclouds-based discovery, since trying to start a node results in the following error:

      Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.ignite.spi.discovery.tcp.ipfinder.cloud.TcpDiscoveryCloudIpFinder#1877ab81' defined in URL [file:/home/ikasnacheev/Downloads/apache-ignite-2.11.0-SNAPSHOT-bin/config/cloud-config.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: Lorg/jclouds/compute/ComputeService;
              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562)
              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
              at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:299)
              ... 28 more
      Caused by: java.lang.NoClassDefFoundError: Lorg/jclouds/compute/ComputeService;
              at java.lang.Class.getDeclaredFields0(Native Method)
              at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
              at java.lang.Class.getDeclaredFields(Class.java:1916)
              at org.springframework.util.ReflectionUtils.getDeclaredFields(ReflectionUtils.java:713)
              at org.springframework.util.ReflectionUtils.findField(ReflectionUtils.java:97)
              at org.springframework.util.ReflectionUtils.findField(ReflectionUtils.java:80)
              at org.springframework.core.convert.Property.getField(Property.java:225)
              at org.springframework.core.convert.Property.resolveAnnotations(Property.java:202)
              at org.springframework.core.convert.Property.getAnnotations(Property.java:123)
              at org.springframework.core.convert.TypeDescriptor.<init>(TypeDescriptor.java:115)
              at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:214)
              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1568)
              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1527)
              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1269)
              at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:551)
              ... 30 more
      Caused by: java.lang.ClassNotFoundException: org.jclouds.compute.ComputeService
              at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
              at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
              ... 45 more
      

      The following default config is used:

          <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
        <property name="discoverySpi">
          <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
            <property name="ipFinder">
      
                           <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.cloud.TcpDiscoveryCloudIpFinder">
                               <property name="provider" value="google-compute-engine"/>
                               <property name="identity" value="your_service_account_email"/>
                               <property name="credentialPath" value="path_to_json_key"/>
                               <property name="zones">
                                   <list>
                                       <value>us-central1-a</value>
                                       <value>asia-east1-a</value>
                                   </list>
                               </property>
                           </bean>
            </property>
          </bean>
        </property>
          </bean>
      

      By the way, there is extra closing slash in initial <bean> tag in org.apache.ignite.spi.discovery.tcp.ipfinder.cloud.TcpDiscoveryCloudIpFinder javadoc (line 112). Makes sense to fix.

      Attachments

        Activity

          People

            Unassigned Unassigned
            ilyak Ilya Kasnacheev
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: