Hi Stephen, I see you are deploying service from the same client node where proxy is obtained. In my setup, I have deployed service through ignite config on server start and try to create a client later and hence the proxy. It works when I try to obtain a proxy on the server node. But when I start a client node and try to obtain service instance through proxy, it throws this exception mentioned above
On Wed, Aug 31, 2022 at 6:13 PM Stephen Darlington < stephen.darling...@gridgain.com> wrote: > 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 <redni...@gmail.com> 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 < > stephen.darling...@gridgain.com> wrote: > >> Which version of Ignite? Which version of Java? >> >> On 30 Aug 2022, at 13:40, Surinder Mehra <redni...@gmail.com> 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 < >> stephen.darling...@gridgain.com> wrote: >> >>> Your service needs to implement org.apache.ignite.services.Service. >>> >>> > On 30 Aug 2022, at 12:40, Surinder Mehra <redni...@gmail.com> 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> >>> > >>> > >>> > >>> >>> >