You’ll need to share more of your code and configuration. As far as I can tell,
it works. This is my entire code/configuration, using Ignite 2.11.1 and Java
11.0.16.1+1.
var igniteConfiguration = new IgniteConfiguration()
.setPeerClassLoadingEnabled(true)
.setClientMode(true);
try (var ignite = Ignition.start(igniteConfiguration)) {
var cfg = new ServiceConfiguration()
.setName("MyService")
.setTotalCount(1)
.setMaxPerNodeCount(1)
.setNodeFilter(x -> !x.isClient())
.setService(new MyServiceImpl());
ignite.services().deploy(cfg);
var s = ignite.services().serviceProxy("MyService",
MyService.class, false);
s.sayHello();
}
public interface MyService {
public void sayHello();
}
public class MyServiceImpl implements MyService, Service {
@Override
public void cancel(ServiceContext serviceContext) {
}
@Override
public void init(ServiceContext serviceContext) throws Exception {
}
@Override
public void execute(ServiceContext serviceContext) throws Exception {
}
@Override
public void sayHello() {
System.out.println("Hello, world.");
}
}
> On 31 Aug 2022, at 04:17, Surinder Mehra <[email protected]> wrote:
>
> Please find below
> ignite version: apache-ignite-2.11.1
> VM information: OpenJDK Runtime Environment 11.0.15+9-LTS
>
> On Wed, Aug 31, 2022 at 12:12 AM Stephen Darlington
> <[email protected] <mailto:[email protected]>>
> wrote:
> Which version of Ignite? Which version of Java?
>
> On 30 Aug 2022, at 13:40, Surinder Mehra <[email protected]
> <mailto:[email protected]>> wrote:
>>
>>
>> Hi Stephen ,
>> yes that is implemented correctly and it's running on server nodes as well.
>> Somehow it doesn't work when accessed through proxy
>>
>> On Tue, Aug 30, 2022 at 5:45 PM Stephen Darlington
>> <[email protected] <mailto:[email protected]>>
>> wrote:
>> Your service needs to implement org.apache.ignite.services.Service.
>>
>> > On 30 Aug 2022, at 12:40, Surinder Mehra <[email protected]
>> > <mailto:[email protected]>> wrote:
>> >
>> > Hi,
>> > can you help me find out the reason for this exception in thick client
>> > while getting instance of ignite service:
>> >
>> > getIgnite()
>> > .services()
>> > .serviceProxy("sampleService", SampleService.class, false)
>> >
>> > java.lang.ClassCastException: class com.sun.proxy.$Proxy148 cannot be cast
>> > to class com.test.ignite.stuff.services.SampleServiceImpl
>> > (com.sun.proxy.$Proxy148 and
>> > com.test.ignite.stuff.services.SampleServiceImpl are in unnamed module of
>> > loader 'app')
>> >
>> > interface SampleService{
>> >
>> > }
>> >
>> > class SampleServiceImpl implements SampleService{
>> >
>> > }
>> >
>> > ignite config:
>> >
>> > <property name="serviceConfiguration">
>> > <list>
>> > <bean class="org.apache.ignite.services.ServiceConfiguration">
>> > <property name="name" value="sampleService"/>
>> > <property name="maxPerNodeCount" value="1"/>
>> > <property name="totalCount" value="1"/>
>> > <property name="service">
>> > <bean
>> > class="com.test.ignite.stuff.services.SampleServiceImpl"/>
>> > </property>
>> > <property name="nodeFilter">
>> > <bean
>> > class="com.test.ignite.stuff.node.filter.ServerNodeFilter"/>
>> > </property>
>> > </bean>
>> > </list>
>> > </property>
>> >
>> >
>> >
>>