1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.vci.server;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
import com.vci.server.framework.volume.VolumeManagerImpl;
import com.zeroc.Ice.Communicator;
import com.zeroc.Ice.Identity;
import com.zeroc.Ice.ObjectAdapter;
import com.zeroc.Ice.Util;
import com.zeroc.IceBox.Service;
 
public class VolumeFactoryBoxService implements Service {
    private static final Logger LOGGER = LoggerFactory.getLogger(VolumeFactoryBoxService.class);
    protected ObjectAdapter _adapter;
    protected Identity id;
    
    @Override
    public void start(String name, Communicator communicator, String[] args) {
        LOGGER.info("start servant: VolumeFactoryService");
        // IceBox
        // 创建objectAdapter,这里和service同名
        _adapter = communicator.createObjectAdapter(name);
        // 创建servant
        com.zeroc.Ice.Object object = new VolumeManagerImpl();
        id = Util.stringToIdentity(name);
        // _adapter.add(object, communicator.stringToIdentity(name));
        _adapter.add(object, id);
        // 激活
        _adapter.activate();
        LOGGER.info("start servant success: VolumeFactoryService");
    }
 
    @Override
    public void stop() {
        LOGGER.info("VolumeFactoryService stoped, args");
        _adapter.destroy();
    }
 
}