diff --git a/cli/pom.xml b/cli/pom.xml
index 2cf25e8..183e3a4 100644
--- a/cli/pom.xml
+++ b/cli/pom.xml
@@ -44,6 +44,16 @@
org.apache.xmlrpc
xmlrpc-client
3.1.3
+
+
+ junit
+ junit
+
+
+ xml-apis
+ xml-apis
+
+
jline
@@ -55,10 +65,5 @@
commons-cli
1.3.1
-
- log4j
- log4j
- 1.2.17
-
diff --git a/cli/src/main/java/de/hsadmin/jscli/Main.java b/cli/src/main/java/de/hsadmin/jscli/Main.java
index bb4a82c..b167754 100644
--- a/cli/src/main/java/de/hsadmin/jscli/Main.java
+++ b/cli/src/main/java/de/hsadmin/jscli/Main.java
@@ -62,7 +62,7 @@ public class Main {
}
if (cmdParser.isInteractive()) {
String command = console.readInput();
- while (!("bye".equals(command.trim()) || "exit".equals(command.trim()) || "quit".equals(command.trim()))) {
+ while (!isExitCommand(command)) {
try {
scriptClient.execute(command);
console.println(formatter.format(scriptClient.getLastRpcResult()));
@@ -78,6 +78,11 @@ public class Main {
}
}
+ private static boolean isExitCommand(String command) {
+ String trimmedCommand = command.trim();
+ return "bye".equals(trimmedCommand) || "exit".equals(trimmedCommand) || "quit".equals(trimmedCommand);
+ }
+
private static String findRootException(final Exception exp) {
Throwable cause = exp;
while (cause.getCause() != null && cause.getCause() != cause) {
diff --git a/cli/src/main/java/de/hsadmin/jscli/RpcClient.java b/cli/src/main/java/de/hsadmin/jscli/RpcClient.java
index 153e139..268c70e 100644
--- a/cli/src/main/java/de/hsadmin/jscli/RpcClient.java
+++ b/cli/src/main/java/de/hsadmin/jscli/RpcClient.java
@@ -75,7 +75,9 @@ public class RpcClient {
}
return list;
} catch (XmlRpcException e) {
- throw new JSCliException(e);
+ final String message = e.getLocalizedMessage();
+ final int messageStartIndex = message.lastIndexOf("Exception:") + 10;
+ throw new JSCliException(message.substring(messageStartIndex).trim());
}
}