public static org.jdom2.Document demanderProduits(String nom) throws ClassNotFoundException, UnknownHostException, IOException {

        org.jdom2.Document res = null;

        try {
            gbu = (IGestionBoutiques) Naming.lookup("rmi://localhost/GestionBoutiques");
        } catch (NotBoundException ex) {
            Logger.getLogger(ConnexionThreadClientProduits.class.getName()).log(Level.SEVERE, null, ex);
        } catch (MalformedURLException ex) {
            Logger.getLogger(ConnexionThreadClientProduits.class.getName()).log(Level.SEVERE, null, ex);
        } catch (RemoteException ex) {
            Logger.getLogger(ConnexionThreadClientProduits.class.getName()).log(Level.SEVERE, null, ex);
        }

        String port = gbu.getPortProduitsBoutique(nom);
        String ip = gbu.getPortIPBoutique(nom);

        if (port != null && ip != null) {

            Element racine = new Element("demande");
            org.jdom2.Document doc = new Document(racine);
            Socket s = new Socket(ip, Integer.valueOf(port));

            racine.setAttribute(new Attribute("action", "recevoirProduits"));

            //envoyer la demande
            try {
                java.io.OutputStream os = s.getOutputStream();
                ObjectOutputStream oos = new ObjectOutputStream(os);
                oos.writeObject(doc);
                oos.flush();

            } catch (Exception e) {
                System.err.println("Erreur : " + e);
            }

            //reception de la demande
            InputStream is;
            try {
                is = s.getInputStream();
                ObjectInputStream ois = new ObjectInputStream(is);
                res = (org.jdom2.Document) ois.readObject();
                affiche(res);
                s.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return res;
        }

        return null;
    }