Archived

This forum has been archived. Please start a new discussion on GitHub.

why can't I find my registed object?

Ice version (Ice 3.4.1)
Compiler version (JDK 1.6)
Operating system (Windows xp)



I integrate my IceBox's application into IceGrid application, so write the following config.
#config.registry
IceGrid.InstanceName=DemoIceGrid

IceGrid.Registry.Client.Endpoints=tcp -p 4061
IceGrid.Registry.Server.Endpoints=tcp
IceGrid.Registry.Internal.Endpoints=tcp
IceGrid.Registry.PermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier
IceGrid.Registry.Data=db/master
IceGrid.Registry.DynamicRegistration=1
#config.gird
Ice.Default.Locator=DemoIceGrid/Locator:default -p 4061

IceGrid.Node.Name=node1
IceGrid.Node.Endpoints=default
IceGrid.Node.Data=db/node

application.xml
<icegrid>
  <application name="IceBoxDemo">
    <node name="node1">
      <icebox id="IceBoxServer" activation="on-demand" exe="java">
        <description>A sample IceBox server</description>
        <option>-Djava.ext.dirs=d:/demo/icegrid/;C:/Ice-3.3.1/lib/</option>
        <option>IceBox.Server</option>
        <properties>
          <property name="IceBox.InstanceName" value="${server}"/>
          <property name="Ice.Admin.Endpoints" value="tcp -h 127.0.0.1"/>
          <property name="IceBox.Trace.ServiceObserver" value="1"/>        	
        </properties>
        <service name="ServiceA" entry="server.HelloServiceI">
          <adapter name="Hello-${service}" endpoints="default"/>
        </service>
      </icebox>
    </node>
  </application>
</icegrid>

My IceBox service code:
package server;
import Ice.Communicator;
import IceBox.Service;

public class HelloServiceI implements Service {
	private Ice.ObjectAdapter _adapter;
	@Override
	public void start(String name, Communicator communicator, String[] args) {
		_adapter = communicator.createObjectAdapter(name);
		_adapter.add(new PrinterI(),Ice.Util.stringToIdentity("hello"));
		_adapter.activate();
	}

	@Override
	public void stop() {
		_adapter.destroy();
	}

}

When I use the command "icegridadmin", can't find any object named by "hello"? Where is wrong?!

Comments

  • The file application.xml is wrong!
    <icegrid>
      <application name="IceBoxDemo">
        <node name="node1">
          <icebox id="IceBoxServer" activation="on-demand" exe="java">
            <description>A sample IceBox server</description>
            <option>-Djava.ext.dirs=d:/demo/icegrid/;C:/Ice-3.3.1/lib/</option>
            <option>IceBox.Server</option>
            <properties>
              <property name="IceBox.InstanceName" value="${server}"/>
              <property name="Ice.Admin.Endpoints" value="tcp -h 127.0.0.1"/>
              <property name="IceBox.Trace.ServiceObserver" value="1"/>        	
            </properties>
            <service name="ServiceA" entry="server.HelloServiceI">
              <adapter name="Hello-${service}" endpoints="default"/>       <------here,change name and add object info
            </service>
          </icebox>
        </node>
      </application>
    </icegrid>
    

    The new application.xml:
    <icegrid>
      <application name="IceBoxDemo">
        <node name="node1">
          <icebox id="IceBoxServer" activation="on-demand" exe="java">
            <description>A sample IceBox server</description>
            <option>-Djava.ext.dirs=d:/demo/icegrid/;C:/Ice-3.3.1/lib/</option>
            <option>IceBox.Server</option>
            <properties>
              <property name="IceBox.InstanceName" value="${server}"/>
              <property name="Ice.Admin.Endpoints" value="tcp -h 127.0.0.1"/>
              <property name="IceBox.Trace.ServiceObserver" value="1"/>        	
            </properties>
            <service name="ServiceA" entry="server.HelloServiceI">
              <adapter name="${service}" id="${service}" endpoints="default">
                <object identity="hello" type="::Demo::Hello"/>
              </adapter>
            </service>
          </icebox>
        </node>
      </application>
    </icegrid>
    

    So, everything is ok!