2012-06-15 73 views
0

我必須開發一個使用JSCH(用於SSH的librairie)的Java Web服務。 但我在調用這個Web服務得到一個錯誤:java中的Web服務錯誤:InvocationTargetException

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

我的Java代碼的偉大工程,但是當我把它像一個Web服務,我有這樣的錯誤。

這裏是我的Java代碼:

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; 
    } 

} 
+0

對不起,你的問題的提出不夠全面。 **您是如何將此代碼作爲網絡服務調用的?如果你有一些包裝代碼,那就在那裏放一個日誌輸出來實際顯示異常。 –

+0

我在tomcat中使用axis來自動生成WSDL文件,所以我沒有日誌文件,我也沒有使用任何包裝器 – Wael

回答

0

即使我在開發Web服務已經面臨着同樣的錯誤。檢查你正在使用的eclipse的版本。 How I was able to solve it.

+0

thnx爲你回答,但我不使用插件 – Wael