You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "AK47Sonic (Jira)" <ji...@apache.org> on 2020/05/28 23:49:00 UTC

[jira] [Updated] (IGNITE-13094) java.lang.ClassNotFoundException: ch.qos.logback for distributed compute

     [ https://issues.apache.org/jira/browse/IGNITE-13094?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

AK47Sonic updated IGNITE-13094:
-------------------------------
    Description: 
I try to use spring boot (2.1.0.RELEASE) to run ignite.compute. As spring boot + lombok use logback as default, the following codes always throw exceptions (2020-05-28 07:00:48.979 WARN 8460 --- [ p2p-#49] o.a.i.i.m.d.GridDeploymentCommunication : Failed to resolve class: ch.qos.logback). The result (28) could be returned. Seems we see log4j and log4j2 on official website. I try to use log4j2 to replace logback. And it works fine. Does ignite support logback for distributed compute? Or It is just a bug?


{panel:title=pom.xml}
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.ignite</groupId>
            <artifactId>ignite-core</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ignite</groupId>
            <artifactId>ignite-spring</artifactId>
            <version>2.8.0</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
{panel}


{panel:title=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"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/util
        http://www.springframework.org/schema/util/spring-util.xsd">

    <bean id="igniteCfg" class="org.apache.ignite.configuration.IgniteConfiguration">
        <property name="clientMode" value="true"/>
        <property name="peerClassLoadingEnabled" value="true"/>
        <property name="discoverySpi">
            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                <property name="localPort" value="48500"/>
                <property name="localPortRange" value="20"/>
                <property name="ipFinder">
                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                        <property name="addresses">
                            <list>
                                <value>127.0.0.1:48500..48520</value>
                            </list>
                        </property>
                    </bean>
                </property>
            </bean>
        </property>
        <property name="communicationSpi">
            <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
                <property name="localPort" value="48100"/>
            </bean>
        </property>
    </bean>
</beans>
{panel}


{code:java}
 @Configuration
@ImportResource(locations={"classpath:default-config.xml"})
public class IgniteConfig {

    @Bean
    public Ignite ignite(IgniteConfiguration igniteConfiguration) {
        Ignite ignite = Ignition.start(igniteConfiguration);
        Ignition.setClientMode(true);
        return ignite;
    }
}

@Slf4j
@RestController
public class WebController {

    @Autowired
    private Ignite ignite;

    @GetMapping("/compute")
    public void compute() {
        Collection<IgniteCallable<Integer>> calls = new ArrayList<>();

        // Iterate through all the words in the sentence and create Callable jobs.
        for (final String word : "Count characters using callable".split(" "))
            calls.add(word::length);

        // Execute collection of Callables on the grid.
        Collection<Integer> res = ignite.compute().call(calls);

        // Add up all the results.
        int sum = res.stream().mapToInt(Integer::intValue).sum();

        log.info("Total number of characters is '" + sum + "'.");
    }
}
{code}


{panel:title=Exception}
2020-05-28 07:00:48.786  INFO 8460 --- [nio-8080-exec-1] o.a.i.i.m.d.GridDeploymentLocalStore     : Class locally deployed: class com.sonic.sample.springboot.controller.WebController
2020-05-28 07:00:48.890  WARN 8460 --- [        p2p-#49] o.a.i.i.m.d.GridDeploymentCommunication  : Failed to resolve class: ch.qos.logback

java.lang.ClassNotFoundException: ch.qos.logback
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_121]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
    at java.lang.Class.forName0(Native Method) ~[na:1.8.0_121]
    at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_121]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processResourceRequest(GridDeploymentCommunication.java:216) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processDeploymentRequest(GridDeploymentCommunication.java:152) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.access$000(GridDeploymentCommunication.java:55) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication$1.onMessage(GridDeploymentCommunication.java:88) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1843) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.access$5100(GridIoManager.java:229) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1325) [ignite-core-2.8.0.jar:2.8.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]

2020-05-28 07:00:49.000  WARN 8460 --- [        p2p-#50] o.a.i.i.m.d.GridDeploymentCommunication  : Failed to resolve class: ch.qos.logback

java.lang.ClassNotFoundException: ch.qos.logback
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_121]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
    at java.lang.Class.forName0(Native Method) ~[na:1.8.0_121]
    at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_121]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processResourceRequest(GridDeploymentCommunication.java:216) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processDeploymentRequest(GridDeploymentCommunication.java:152) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.access$000(GridDeploymentCommunication.java:55) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication$1.onMessage(GridDeploymentCommunication.java:88) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1843) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.access$5100(GridIoManager.java:229) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1325) [ignite-core-2.8.0.jar:2.8.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]

2020-05-28 07:00:49.000  WARN 8460 --- [        p2p-#50] o.a.i.i.m.d.GridDeploymentCommunication  : Failed to resolve class: ch.qos.logback

java.lang.ClassNotFoundException: ch.qos.logback
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_121]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
    at java.lang.Class.forName0(Native Method) ~[na:1.8.0_121]
    at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_121]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processResourceRequest(GridDeploymentCommunication.java:216) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processDeploymentRequest(GridDeploymentCommunication.java:152) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.access$000(GridDeploymentCommunication.java:55) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication$1.onMessage(GridDeploymentCommunication.java:88) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1843) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.access$5100(GridIoManager.java:229) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1325) [ignite-core-2.8.0.jar:2.8.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]

2020-05-28 07:00:49.025  INFO 8460 --- [nio-8080-exec-1] c.s.s.s.controller.WebController         : Total number of characters is '28'.
{panel}



  was:
I try to use spring boot (2.1.0.RELEASE) to run ignite.compute. As spring boot + lombok use logback as default, the following codes always throw exceptions (2020-05-28 07:00:48.979 WARN 8460 --- [ p2p-#49] o.a.i.i.m.d.GridDeploymentCommunication : Failed to resolve class: ch.qos.logback). The result (28) could be returned. Seems we see log4j and log4j2 on official website. Does ignite support logback?


{panel:title=pom.xml}
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.ignite</groupId>
            <artifactId>ignite-core</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ignite</groupId>
            <artifactId>ignite-spring</artifactId>
            <version>2.8.0</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
{panel}


{panel:title=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"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/util
        http://www.springframework.org/schema/util/spring-util.xsd">

    <bean id="igniteCfg" class="org.apache.ignite.configuration.IgniteConfiguration">
        <property name="clientMode" value="true"/>
        <property name="peerClassLoadingEnabled" value="true"/>
        <property name="discoverySpi">
            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                <property name="localPort" value="48500"/>
                <property name="localPortRange" value="20"/>
                <property name="ipFinder">
                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                        <property name="addresses">
                            <list>
                                <value>127.0.0.1:48500..48520</value>
                            </list>
                        </property>
                    </bean>
                </property>
            </bean>
        </property>
        <property name="communicationSpi">
            <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
                <property name="localPort" value="48100"/>
            </bean>
        </property>
    </bean>
</beans>
{panel}


{code:java}
 @Configuration
@ImportResource(locations={"classpath:default-config.xml"})
public class IgniteConfig {

    @Bean
    public Ignite ignite(IgniteConfiguration igniteConfiguration) {
        Ignite ignite = Ignition.start(igniteConfiguration);
        Ignition.setClientMode(true);
        return ignite;
    }
}

@Slf4j
@RestController
public class WebController {

    @Autowired
    private Ignite ignite;

    @GetMapping("/compute")
    public void compute() {
        Collection<IgniteCallable<Integer>> calls = new ArrayList<>();

        // Iterate through all the words in the sentence and create Callable jobs.
        for (final String word : "Count characters using callable".split(" "))
            calls.add(word::length);

        // Execute collection of Callables on the grid.
        Collection<Integer> res = ignite.compute().call(calls);

        // Add up all the results.
        int sum = res.stream().mapToInt(Integer::intValue).sum();

        log.info("Total number of characters is '" + sum + "'.");
    }
}
{code}


{panel:title=Exception}
2020-05-28 07:00:48.786  INFO 8460 --- [nio-8080-exec-1] o.a.i.i.m.d.GridDeploymentLocalStore     : Class locally deployed: class com.sonic.sample.springboot.controller.WebController
2020-05-28 07:00:48.890  WARN 8460 --- [        p2p-#49] o.a.i.i.m.d.GridDeploymentCommunication  : Failed to resolve class: ch.qos.logback

java.lang.ClassNotFoundException: ch.qos.logback
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_121]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
    at java.lang.Class.forName0(Native Method) ~[na:1.8.0_121]
    at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_121]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processResourceRequest(GridDeploymentCommunication.java:216) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processDeploymentRequest(GridDeploymentCommunication.java:152) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.access$000(GridDeploymentCommunication.java:55) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication$1.onMessage(GridDeploymentCommunication.java:88) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1843) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.access$5100(GridIoManager.java:229) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1325) [ignite-core-2.8.0.jar:2.8.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]

2020-05-28 07:00:49.000  WARN 8460 --- [        p2p-#50] o.a.i.i.m.d.GridDeploymentCommunication  : Failed to resolve class: ch.qos.logback

java.lang.ClassNotFoundException: ch.qos.logback
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_121]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
    at java.lang.Class.forName0(Native Method) ~[na:1.8.0_121]
    at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_121]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processResourceRequest(GridDeploymentCommunication.java:216) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processDeploymentRequest(GridDeploymentCommunication.java:152) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.access$000(GridDeploymentCommunication.java:55) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication$1.onMessage(GridDeploymentCommunication.java:88) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1843) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.access$5100(GridIoManager.java:229) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1325) [ignite-core-2.8.0.jar:2.8.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]

2020-05-28 07:00:49.000  WARN 8460 --- [        p2p-#50] o.a.i.i.m.d.GridDeploymentCommunication  : Failed to resolve class: ch.qos.logback

java.lang.ClassNotFoundException: ch.qos.logback
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_121]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_121]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
    at java.lang.Class.forName0(Native Method) ~[na:1.8.0_121]
    at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_121]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processResourceRequest(GridDeploymentCommunication.java:216) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processDeploymentRequest(GridDeploymentCommunication.java:152) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.access$000(GridDeploymentCommunication.java:55) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication$1.onMessage(GridDeploymentCommunication.java:88) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1843) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager.access$5100(GridIoManager.java:229) [ignite-core-2.8.0.jar:2.8.0]
    at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1325) [ignite-core-2.8.0.jar:2.8.0]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]

2020-05-28 07:00:49.025  INFO 8460 --- [nio-8080-exec-1] c.s.s.s.controller.WebController         : Total number of characters is '28'.
{panel}




> java.lang.ClassNotFoundException: ch.qos.logback for distributed compute
> ------------------------------------------------------------------------
>
>                 Key: IGNITE-13094
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13094
>             Project: Ignite
>          Issue Type: Bug
>          Components: compute
>    Affects Versions: 2.8.1
>         Environment: Ignite 2.8.0
> Spring Boot 2.1.0.RELEASE
> Java 1.8
>            Reporter: AK47Sonic
>            Priority: Major
>
> I try to use spring boot (2.1.0.RELEASE) to run ignite.compute. As spring boot + lombok use logback as default, the following codes always throw exceptions (2020-05-28 07:00:48.979 WARN 8460 --- [ p2p-#49] o.a.i.i.m.d.GridDeploymentCommunication : Failed to resolve class: ch.qos.logback). The result (28) could be returned. Seems we see log4j and log4j2 on official website. I try to use log4j2 to replace logback. And it works fine. Does ignite support logback for distributed compute? Or It is just a bug?
> {panel:title=pom.xml}
> <dependencies>
>         <dependency>
>             <groupId>org.springframework.boot</groupId>
>             <artifactId>spring-boot-starter-web</artifactId>
>             <exclusions>
>                 <exclusion>
>                     <groupId>org.springframework.boot</groupId>
>                     <artifactId>spring-boot-starter-log4j</artifactId>
>                 </exclusion>
>             </exclusions>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.ignite</groupId>
>             <artifactId>ignite-core</artifactId>
>             <version>2.8.0</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.ignite</groupId>
>             <artifactId>ignite-spring</artifactId>
>             <version>2.8.0</version>
>         </dependency>
>         <dependency>
>             <groupId>org.projectlombok</groupId>
>             <artifactId>lombok</artifactId>
>             <version>1.18.12</version>
>             <scope>provided</scope>
>         </dependency>
>     </dependencies>
> {panel}
> {panel:title=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"
>        xmlns:util="http://www.springframework.org/schema/util"
>        xsi:schemaLocation="
>         http://www.springframework.org/schema/beans
>         http://www.springframework.org/schema/beans/spring-beans.xsd
>         http://www.springframework.org/schema/util
>         http://www.springframework.org/schema/util/spring-util.xsd">
>     <bean id="igniteCfg" class="org.apache.ignite.configuration.IgniteConfiguration">
>         <property name="clientMode" value="true"/>
>         <property name="peerClassLoadingEnabled" value="true"/>
>         <property name="discoverySpi">
>             <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
>                 <property name="localPort" value="48500"/>
>                 <property name="localPortRange" value="20"/>
>                 <property name="ipFinder">
>                     <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
>                         <property name="addresses">
>                             <list>
>                                 <value>127.0.0.1:48500..48520</value>
>                             </list>
>                         </property>
>                     </bean>
>                 </property>
>             </bean>
>         </property>
>         <property name="communicationSpi">
>             <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
>                 <property name="localPort" value="48100"/>
>             </bean>
>         </property>
>     </bean>
> </beans>
> {panel}
> {code:java}
>  @Configuration
> @ImportResource(locations={"classpath:default-config.xml"})
> public class IgniteConfig {
>     @Bean
>     public Ignite ignite(IgniteConfiguration igniteConfiguration) {
>         Ignite ignite = Ignition.start(igniteConfiguration);
>         Ignition.setClientMode(true);
>         return ignite;
>     }
> }
> @Slf4j
> @RestController
> public class WebController {
>     @Autowired
>     private Ignite ignite;
>     @GetMapping("/compute")
>     public void compute() {
>         Collection<IgniteCallable<Integer>> calls = new ArrayList<>();
>         // Iterate through all the words in the sentence and create Callable jobs.
>         for (final String word : "Count characters using callable".split(" "))
>             calls.add(word::length);
>         // Execute collection of Callables on the grid.
>         Collection<Integer> res = ignite.compute().call(calls);
>         // Add up all the results.
>         int sum = res.stream().mapToInt(Integer::intValue).sum();
>         log.info("Total number of characters is '" + sum + "'.");
>     }
> }
> {code}
> {panel:title=Exception}
> 2020-05-28 07:00:48.786  INFO 8460 --- [nio-8080-exec-1] o.a.i.i.m.d.GridDeploymentLocalStore     : Class locally deployed: class com.sonic.sample.springboot.controller.WebController
> 2020-05-28 07:00:48.890  WARN 8460 --- [        p2p-#49] o.a.i.i.m.d.GridDeploymentCommunication  : Failed to resolve class: ch.qos.logback
> java.lang.ClassNotFoundException: ch.qos.logback
>     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_121]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_121]
>     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_121]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
>     at java.lang.Class.forName0(Native Method) ~[na:1.8.0_121]
>     at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_121]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processResourceRequest(GridDeploymentCommunication.java:216) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processDeploymentRequest(GridDeploymentCommunication.java:152) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.access$000(GridDeploymentCommunication.java:55) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication$1.onMessage(GridDeploymentCommunication.java:88) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1843) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.communication.GridIoManager.access$5100(GridIoManager.java:229) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1325) [ignite-core-2.8.0.jar:2.8.0]
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
>     at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]
> 2020-05-28 07:00:49.000  WARN 8460 --- [        p2p-#50] o.a.i.i.m.d.GridDeploymentCommunication  : Failed to resolve class: ch.qos.logback
> java.lang.ClassNotFoundException: ch.qos.logback
>     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_121]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_121]
>     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_121]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
>     at java.lang.Class.forName0(Native Method) ~[na:1.8.0_121]
>     at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_121]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processResourceRequest(GridDeploymentCommunication.java:216) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processDeploymentRequest(GridDeploymentCommunication.java:152) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.access$000(GridDeploymentCommunication.java:55) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication$1.onMessage(GridDeploymentCommunication.java:88) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1843) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.communication.GridIoManager.access$5100(GridIoManager.java:229) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1325) [ignite-core-2.8.0.jar:2.8.0]
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
>     at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]
> 2020-05-28 07:00:49.000  WARN 8460 --- [        p2p-#50] o.a.i.i.m.d.GridDeploymentCommunication  : Failed to resolve class: ch.qos.logback
> java.lang.ClassNotFoundException: ch.qos.logback
>     at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_121]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_121]
>     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_121]
>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
>     at java.lang.Class.forName0(Native Method) ~[na:1.8.0_121]
>     at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_121]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processResourceRequest(GridDeploymentCommunication.java:216) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.processDeploymentRequest(GridDeploymentCommunication.java:152) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication.access$000(GridDeploymentCommunication.java:55) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.deployment.GridDeploymentCommunication$1.onMessage(GridDeploymentCommunication.java:88) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1843) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.communication.GridIoManager.access$5100(GridIoManager.java:229) [ignite-core-2.8.0.jar:2.8.0]
>     at org.apache.ignite.internal.managers.communication.GridIoManager$8.run(GridIoManager.java:1325) [ignite-core-2.8.0.jar:2.8.0]
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121]
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121]
>     at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]
> 2020-05-28 07:00:49.025  INFO 8460 --- [nio-8080-exec-1] c.s.s.s.controller.WebController         : Total number of characters is '28'.
> {panel}



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