@Override
    public List<String> searchRemote(String string) {
        List<String> resultList = new ArrayList<String>();

        IPaddress.clear();
        getAllIP();

        System.out.println("........................................STARTING COMMUNICATION");

        Properties props = new Properties();
        props.setProperty("java.naming.factory.initial",
                "com.sun.enterprise.naming.SerialInitContextFactory");
        props.setProperty("java.naming.factory.url.pkgs",
                "com.sun.enterprise.naming");
        props.setProperty("java.naming.factory.state",
                "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
        props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");

        for (String ip : IPaddress) {
            props.setProperty("org.omg.CORBA.ORBInitialHost", ip);
            try {
                addr = InetAddress.getByName(ip);
                //if (addr.isReachable(2000) == true) {
                    InitialContext ic = new InitialContext(props);
                    CommunicationRemote communication = (CommunicationRemote) ic.lookup("java:global/Warehouse/Warehouse-ejb/Communication!communication.CommunicationRemote");
                    resultList.addAll(communication.searchRemoteI(string));
                //}
            } catch (NamingException ex) {
                Logger.getLogger(Communication.class.getName()).log(Level.SEVERE, null, ex);
            } catch (Exception ex) {
                System.out.println("..............................COMMUNICATION CANNOT CONNECT");
                Logger.getLogger(Communication.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        return resultList;
    }