Hi,
I'm trying to run simple demo with adapter's replication. The problem is registering objects in adapters and name used for accessing objects.
Is that correct to create adapter with name "CalcAdapter"?Code:<icegrid> <application name="CalculatorApplication"> <replica-group id="CalcReplica"> <load-balancing type="random" n-replicas="3"/> <object identity="Calculator" type="::calc::Calculator"/> </replica-group> <server-template id="CalculatorServer"> <parameter name="index"/> <server id="CalculatorServer-${index}" exe="D:/ice/start.cmd" activation="on-demand"> <adapter id="CalcAdapter${index}" endpoints="default" replica-group="CalcReplica"> <property name="Identity" value="Calculator"/> </adapter> </server> </server-template> <node name="Node1"> <server-instance template="CalculatorServer" index="1"/> <server-instance template="CalculatorServer" index="2"/> <server-instance template="CalculatorServer" index="3"/> </node> </application> </icegrid>
As I understood from documentation I can access to object by Calculator@CalcReplica:Code:public class CalcService extends Application{ @Override public int run(String[] args) { ObjectAdapter adapter = communicator().createObjectAdapter("CalcAdapter"); CalcImpl calcImpl = new CalcImpl(); adapter.add(calcImpl, Util.stringToIdentity("Calculator")); adapter.activate(); communicator().waitForShutdown(); return 0; } public static void main(String[] args) { new CalcService().main("CalculatorServer", args); } }
but I getCode:public class Client { public static void main(String[] args) throws Exception { System.out.println("Starting client"); Communicator c = Util.initialize(args); System.out.println("Requesting proxy"); ObjectPrx prx = c.stringToProxy("Calculator@CalcReplica"); System.out.println("Casting to calculator"); CalculatorPrx calc = CalculatorPrxHelper.checkedCast(prx); System.out.println("Printing results:"); System.out.println("\tversion=" + calc.calcVersion()); System.out.println("\tsubtr=" + calc.subtrack(1, 2)); System.out.println("\tsum=" + calc.sum(1.23498723, 32.209823)); System.out.println("\tmultiply=" + calc.multiply(Math.PI, 3.489)); System.out.println("\tdivide=" + calc.divide(Math.PI, Math.E)); System.out.println("Done"); } }
Any help would be really appreciated!Code:D:\ice>java -classpath lib/Ice.jar;out test.Client --Ice.Config=client.cfg Starting client Requesting proxy Casting to calculator Exception in thread "main" Ice.NoEndpointException proxy = "Calculator -t @ CalcReplica" at IceInternal.ConnectRequestHandler.getConnection(ConnectRequestHandler.java:240) at IceInternal.ConnectRequestHandler.sendRequest(ConnectRequestHandler.java:138) at IceInternal.Outgoing.invoke(Outgoing.java:66) at Ice._ObjectDelM.ice_isA(_ObjectDelM.java:30) at Ice.ObjectPrxHelperBase.ice_isA(ObjectPrxHelperBase.java:111) at Ice.ObjectPrxHelperBase.ice_isA(ObjectPrxHelperBase.java:77) at calc.CalculatorPrxHelper.checkedCast(CalculatorPrxHelper.java:610) at test.Client.main(Client.java:15)
Thanks

Reply With Quote