Bonjour,

j'ai à développer un service Web en java et qui utilise la librairie JSCH (ou une autre qui englobe SSH) mais j'ai une erreur dans l'appel de ce service :

faultcode: soapenv:Server.userException, faultstring: java.lang.reflect.InvocationTargetException

Sacant que mon code Java marche trés bien tous seul (sans que je le publie comme un service web)

Pouvez-vous m'aider ! Toutes idées sera la bienvenue

voici mon code java :

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
56
57
58
59
60
 
import java.io.InputStream;
 
    import com.jcraft.jsch.Channel;
    import com.jcraft.jsch.ChannelExec;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.Session;
 
    public class SSHTest {
 
        public static void main(String[] args) {
        	String cmd="pwd";
        	System.out.println(ssh(cmd));
 
        }
 
        public static String ssh (String command1)
        {
       	    String host="10.0.0.20"; 
        	String user="student";
        	String password="xxx";
        	String res="";
        	try{
 
                java.util.Properties config = new java.util.Properties();
                config.put("StrictHostKeyChecking", "no");
                JSch jsch = new JSch();
                Session session=jsch.getSession(user, host, 22);
                session.setPassword(password);
                session.setConfig(config);
                session.connect(); // session.connect(30000) : making a connection with timeout.
 
                Channel channel=session.openChannel("exec");
                ((ChannelExec)channel).setCommand(command1);
                channel.setInputStream(null);
                ((ChannelExec)channel).setErrStream(System.err);
 
                InputStream in=channel.getInputStream();
                channel.connect();
                byte[] tmp=new byte[1024];
                while(true){
                  while(in.available()>0){
                    int i=in.read(tmp, 0, 1024);
                    if(i<0)break;
                    res += new String(tmp, 0, i);
                  }
                  if(channel.isClosed()){
                    break;
                  }
                  try{Thread.sleep(1000);}catch(Exception ee){}
                }
                channel.disconnect();
                session.disconnect();
              }catch(Exception e){
                e.printStackTrace();
            }
              return res;
        }
 
    }