1

我创建了实现 Service 和虚拟测试接口的 Ignite 服务。我正在尝试通过以下代码调用测试接口方法

IgniteServiceTestInterface cntrSvc = ignite.services()
    .serviceProxy("IgniteServiceTestInterface", IgniteServiceTestInterface.class, false);
System.out.println(cntrSvc.invokeNext(1));

方法已经在 Service 中实现,并在被调用时返回下一个计数器。但相反,我收到如下错误

Exception in thread "main" class org.apache.ignite.IgniteException: Failed to find deployed service: IgniteServiceTestInterface
at org.apache.ignite.internal.processors.service.GridServiceProxy$ProxyInvocationHandler.invoke(GridServiceProxy.java:167)
at com.sun.proxy.$Proxy30.invokeNext(Unknown Source)
at IgniteClient.main(IgniteClient.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

谁能告诉我我在这里缺少什么强烈的文字

4

2 回答 2

0

这可能对想要快速部署 ignite 服务的人有所帮助:

Config config = ConfigFactory.load();
String configFile = "ignite.xml";
Ignite ignite = Ignition.start(configFile);

// Deployment the service
IgniteServices services = ignite.services(ignite.cluster().forServers());
services.deployClusterSingleton("IgniteServiceTestInterface", new IgniteServiceTestImpl());

// Accessing the deployed service
IgniteServiceTestInterface cntrSvc = ignite.services()
    .serviceProxy("IgniteServiceTestInterface", IgniteServiceTestInterface.class, false);
System.out.println(cntrSvc.invokeNext(1));
于 2018-03-26T11:16:44.390 回答
-1

它工作正常,服务名称与注册服务不匹配。一旦我更正它,我就能够调用服务名称。

于 2016-04-08T12:35:27.120 回答