javaweb项目中listener中启动ice server监听导致tomcat阻塞,无法启动成功

javaweb项目中listener中启动ice server监听导致tomcat阻塞,无法启动成功
web.xml文件配置listener如下:

<listener>
        <listener-class>com.core.listener.IceStartListenerlistener-class>
    listener>

IceStartListener实现:

public class IceStartListener implements ServletContextListener {

    private IceStartThread iceStartThread;
    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        application application = new application();
        String iceID = application.getStr_ice_ID();
        String iceNET = application.getStr_ice_NET();
        System.out.println("iceID:"+iceID+",iceNET:"+iceNET);

        if(null == iceStartThread)
        {
            //新建线程类
            iceStartThread=new IceStartThread(iceID,iceNET);
            //启动线程
            iceStartThread.start();
        }

    }

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        if(null!=iceStartThread && !iceStartThread.isInterrupted())
        {
            iceStartThread.interrupt();
        }
    }
}

IceStartThread线程实现类核心代码:


```java
public void startICE(String  strCfg_iceID,String  strCfg_iceNet) {
        int status = 0;
        Ice.Communicator ic = null;
        try {
            ic = Ice.Util.initialize();
            Ice.ObjectAdapter adapter = ic.createObjectAdapterWithEndpoints(
                    strCfg_iceID, strCfg_iceNet);
            Ice.Object object = new hsm30InterfaceI();
            adapter.add(object,Ice.Util.stringToIdentity(strCfg_iceID));
            adapter.activate();
            log.info("ICE server:"+strCfg_iceID+"  "+strCfg_iceNet+ "  start OK!");
            ic.waitForShutdown();

        } catch (Ice.LocalException e) {
            e.printStackTrace();
            status = 1;
        } catch (Exception e) {
            System.err.println(e.getMessage());
            status = 1;
        } finally {
            if (ic != null)
                ic.destroy();
        }
        System.exit(status);
    }

启动后阻塞在ic.waitForShutdown();语句中,tomcat就不能再启动。

已经重新启动一个线程来启动ice server,但是tomcat始终起不来。web页面无法正常访问