Bonjour,

Un point en apparence tout simple mais qui me bloque depuis près d'une semaine. Je souhaite exporter une image dans le presse-papier depuis une servlet.

Lorsque je réalise un simple programme java comme suit, tout marche bien

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
import java.awt.*;
import java.awt.datatransfer.*;
import java.io.*;
import java.util.*;
 
public class Test {
    public static void main (String[] parameters) {
        new Test ().test ();
    }
 
    public void test () {
        Toolkit.getDefaultToolkit ().getSystemClipboard ().setContents (new ImageTransferable ("C:\\test.jpg"), null);
    }
 
    private class ImageTransferable implements Transferable {
        private String fileName;
 
        public ImageTransferable (String fileName) {
            if (! new File (fileName).exists ()) {
                throw new IllegalArgumentException ("Can't find image: "+fileName+" !!!");
            }
 
            this.fileName = fileName;
        }
 
        public Object getTransferData (DataFlavor flavor) throws UnsupportedFlavorException {
            if (! isDataFlavorSupported (flavor)) {
                throw new UnsupportedFlavorException (flavor);
            }
 
            return Toolkit.getDefaultToolkit ().createImage (fileName);
        }
 
        public boolean isDataFlavorSupported (DataFlavor flavor) {
            return in (flavor, getTransferDataFlavors ());
        }
 
        public DataFlavor[] getTransferDataFlavors () {
            return new DataFlavor[] {
                DataFlavor.imageFlavor
            };
        }
 
        private boolean in (DataFlavor flavor, DataFlavor[] flavors) {
            int f = 0;
 
            while ((f < flavors.length) && ! flavor.equals (flavors[f])) {
                f ++;
            }
 
            return f < flavors.length;
        }
    }
}
mais dès que j'incorpore ce code dans une servlet, rien n'est copié dans le presse papier... et même en exécutant l'appli depuis le serveur (donc théoriquement pas de confusion entre le presse papiers serveur et ordinateur distant).

Je ne comprends plus rien....

Toute aide serait vraiment très fortement appréciée

Merci beaucoup par avance