Ошибка в веб-службе использует SSH, разработанный с помощью JAVA Axis

63
5

Я пытаюсь сделать веб-сервис в JAVA (оси), который подключается к серверу в SSH, поэтому я использовал api, называемый: ganymed, и он отлично работал в java

но когда я пытаюсь получить файл WSDL с AXis, у меня есть неопределенная ошибка "Исключение - java.lang.NoClassDefFoundError: ch/ethz/ssh2/StreamGobbler"

вот мой файл java:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;

public class ganymed
{
public static string ssh()
{ String res="";
String hostname = "10.0.0.20";
String username = "students";
String password = "xxxx";
try
{
/* Create a connection instance */

Connection conn = new Connection(hostname);

/* Now connect */

conn.connect();

/* Authenticate.
* If you get an IOException saying something like
* "Authentication method password not supported by the server at this stage."
* then please check the FAQ.
*/

boolean isAuthenticated = conn.authenticateWithPassword(username, password);

if (isAuthenticated == false)
throw new IOException("Authentication failed.");

/* Create a session */

Session sess = conn.openSession();

sess.execCommand("uname -a && date && uptime && who");

System.out.println("Here is some information about the remote host:");

/*
* This basic example does not handle stderr, which is sometimes dangerous
* (please read the FAQ).
*/

InputStream stdout = new StreamGobbler(sess.getStdout());

BufferedReader br = new BufferedReader(new InputStreamReader(stdout));

while (true)
{
String line = br.readLine();
if (line == null)
break;
res +=line;

}

/* Show exit status, if available (otherwise "null") */

System.out.println("ExitCode: " + sess.getExitStatus());

/* Close this session */

sess.close();

/* Close the connection */

conn.close();

}
catch (IOException e)
{
e.printStackTrace(System.err);
System.exit(2);
}
return res;
}

}

спросил(а) 2021-01-19T15:40:51+03:00 6 месяцев назад
1
Решение
109

Очевидная причина NoClassDefFoundError заключается в том, что определенный класс недоступен в пути к классам, поэтому вам нужно добавить jar, содержащий класс ch/ethz/ssh2/StreamGobbler в classpath или вам нужно проверить, почему его недоступно в classpath, если вы ожидаете его быть.

Посмотрите на эту ссылку: http://javarevisited.blogspot.com/2011/06/noclassdeffounderror-exception-in.html

ответил(а) 2021-01-19T15:40:51+03:00 6 месяцев назад
45

Я тоже сталкиваюсь с этой проблемой. Наконец, я копирую ganymed-ssh2-263-SNAPSHOT.jar в /usr/share/tomcat6/webapp/myapp/WEB-INF/lib и исправляю проблему. Я думаю, файл jar должен быть интегрирован в myapp.war.

ответил(а) 2021-01-19T15:40:51+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема