You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ilya Kasnacheev (Jira)" <ji...@apache.org> on 2021/04/05 15:52:00 UTC

[jira] [Created] (IGNITE-14481) Missing dependencies for JClouds discovery (ignite-cloud)

Ilya Kasnacheev created IGNITE-14481:
----------------------------------------

             Summary: Missing dependencies for JClouds discovery (ignite-cloud)
                 Key: IGNITE-14481
                 URL: https://issues.apache.org/jira/browse/IGNITE-14481
             Project: Ignite
          Issue Type: Bug
          Components: integrations
    Affects Versions: 2.10
            Reporter: Ilya Kasnacheev


We seem to skip some essential dependencies for jclouds-based discovery, since trying to start a node results in the following error:
{code}
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
{code}

The following default config is used:
{code}
    <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>
{code}

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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)