Hi,
I found the list. So required list is:
annotations.jar
kotlin-reflect.jar
kotlin-stdlib.jar
kotlin-stdlib-common.jar
kotlin-stdlib-jdk8.jar

For  something very basic, only thing I only needed was
kotlin-stdlib.jar(1.5.31) to run my program. I guess others are needed as
required. Thanks for help.


On Sat, Oct 30, 2021 at 1:04 PM Surinder Mehra <redni...@gmail.com> wrote:

> I have mixed  setup, where java client trying to run kotlin function on
> ignite server. Also  i dont run server and client in intelliJ. If I run
> both client and server in IntelliJ, it works. So I am trying to find out
> what list of jars IntelliJ is providing which are missing in standalone
> ignite node libs.
> here are my steps.
> 1. compile and create jar file using gradle
> 2. copy jar file and kotlin stdlib-jdk8 file to local ignite/libs directory
> 3. start server node
> 4. start client node
>  5. Client and server both running ignite 2.11.0 and jdk : openjdk
> 11.0.12+7-LTS, OS : Linux 4.14.248-189.247.amzn2.x86_64 amd62
> MockTest.kt
>
> fun abc(x: Int): () -> Int ={
> println("Kotlin prints : " + (x*2))
> x*2
> }
>
> Java main file:
> Test{
> psvm(){
>
> IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
>                 .setClientMode(true)
>                 .setPeerClassLoadingEnabled(true);
>
> Ignite ignite = Ignition.start(igniteConfiguration)
>
>     ignite.compute().run(() ->  abc(1).invoke());
> }
>
> Server node is simple ignite node with peer class loading enabled
>
> Exception : NoClassDefinitionFoundError kotlin/jvm/functions/Function0
>
> On Fri, Oct 29, 2021 at 8:09 PM Stephen Darlington <
> stephen.darling...@gridgain.com> wrote:
>
>> As long as it can peer-class-load the necessary classes (or they’re
>> already deployed on the server side) it should work. This works on my
>> machine:
>>
>> val cfg = IgniteConfiguration()
>>         .setClientMode(true)
>>         .setPeerClassLoadingEnabled(true)
>> Ignition.start(cfg)
>>         .use { ignite ->
>>             ignite.compute().run() { println("Hello") }
>>         }
>>
>>
>> On 29 Oct 2021, at 13:20, Surinder Mehra <redni...@gmail.com> wrote:
>>
>> Hi Thanks much for investigating it with me.  After spending lot of time
>> on it, I found that client and servers were running on different JDK
>> versions. Client running in java 11 was submitting tasks to server node
>> running on java 8. I upgraded java version on server node and it worked.
>>
>> Actually I have another question. Does ignite needs any extra
>> dependencies to run tasks written in Kotlin. I am getting below error when
>> try to run kotlin code as part of task
>>
>> Caused by: java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
>> at com.test.TestTask.<clinit>(TestTask.kt:36)
>> Caused by: java.lang.ClassNotFoundException:
>> kotlin.jvm.internal.Intrinsics
>> at
>> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
>> at
>> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
>> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
>> ... 45 more
>>
>> On Wed, Oct 27, 2021 at 9:57 PM Stephen Darlington <
>> stephen.darling...@gridgain.com> wrote:
>>
>>> Using Ignite 2.11 and the following code works.
>>>
>>> Server:
>>>
>>> public class ComputeServer {
>>>     public static void main(String[] args) {
>>>         IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
>>>                 .setPeerClassLoadingEnabled(true);
>>>         Ignite ignite = Ignition.start(igniteConfiguration);
>>>     }
>>> }
>>>
>>> Client:
>>>
>>> public class ComputeClient {
>>>     public static void main(String[] args) {
>>>         IgniteConfiguration igniteConfiguration = new IgniteConfiguration()
>>>                 .setClientMode(true)
>>>                 .setPeerClassLoadingEnabled(true);
>>>         try (Ignite ignite = Ignition.start(igniteConfiguration)) {
>>>             ignite.compute().run(() -> System.out.println("Hello, world"));
>>>         }
>>>
>>>     }
>>> }
>>>
>>> (It executes on server nodes by default; you don’t need to create a
>>> cluster group for that.)
>>>
>>> So I think you’ll need to share more about your configuration and/or
>>> code to get to the bottom of this.
>>>
>>> On 27 Oct 2021, at 16:47, Surinder Mehra <redni...@gmail.com> wrote:
>>>
>>> Just wondering if it is possible at all. All examples/demos I have seen
>>> are either using a thin client  or one server node submitting a task to the
>>> grid, or with affinity to a particular node. I have tried all compute apis,
>>> like run, call, runAffinity. callaffinity, broadcast. none of them works
>>> when submitted from client node. They do run if I change clusterGroup to
>>> local nodes. like ClusterGroup grp = ignite.cluster().forLocalNodes();
>>>
>>> On Wed, Oct 27, 2021 at 6:20 PM Surinder Mehra <redni...@gmail.com>
>>> wrote:
>>>
>>>> yes, it is enabled. Even if that wasn't enabled, I should get class not
>>>> found error. Here i dont get any error but its simply doesn't execute. I
>>>> see below flag needs to be enabled for thin client. Is there any
>>>> setting for thick clients as well ?
>>>>
>>>> https://ignite.apache.org/docs/latest/thin-clients/java-thin-client
>>>>
>>>> <bean class="org.apache.ignite.configuration.IgniteConfiguration" 
>>>> id="ignite.cfg">
>>>>     <property name="clientConnectorConfiguration">
>>>>         <bean 
>>>> class="org.apache.ignite.configuration.ClientConnectorConfiguration">
>>>>             <property name="thinClientConfiguration">
>>>>                 <bean 
>>>> class="org.apache.ignite.configuration.ThinClientConfiguration">
>>>>                     <property name="maxActiveComputeTasksPerConnection" 
>>>> value="100" />
>>>>                 </bean>
>>>>             </property>
>>>>         </bean>
>>>>     </property></bean>
>>>>
>>>>
>>>> On Wed, Oct 27, 2021 at 6:04 PM Stephen Darlington <
>>>> stephen.darling...@gridgain.com> wrote:
>>>>
>>>>> Did you enable peer class loading?
>>>>>
>>>>> > On 27 Oct 2021, at 13:18, Surinder Mehra <redni...@gmail.com> wrote:
>>>>> >
>>>>> > Hi,
>>>>> > I have a sever node and a thick client node running. I am trying to
>>>>> submit ignite compute job from client node to server node but it doesn't
>>>>> work.
>>>>> >
>>>>> > ClusterGroup grp = ignite.cluster().forServers()
>>>>> > IgniteCompute ignieCompute = ignite.compute(grp);
>>>>> > igniteCompute.run(() ->  System.out.println("Task Executed"));
>>>>> >
>>>>> > Sysout never printed on console and client keeps running. If I
>>>>> change it to server mode, tasks completed immediately.
>>>>> >
>>>>> > Can someone help me understand if I am missing some configuration?
>>>>> >
>>>>>
>>>>>
>>>>>
>>>
>>>
>>
>>

Reply via email to