Log4j Ошибка инициализации JBoss RestEasy - PullRequest
2 голосов
/ 22 января 2012

Я использую JBoss 6.0. Я использую простой веб-сервер, использующий библиотеку jboss.resteasy для предоставления простых XML-ответов на HTTP-запросы.

У меня есть: - сервер - Простой Java-клиент, который создает запрос GET

Теперь дело в том, что если я использую браузер для доступа к URL, я получаю нужный XML. Но если я использую свой Java-клиент, который имеет следующий код:

//Register the fake instrument
GetMethod get = new GetMethod("http:/localhost:8080/"+PROJECT_NAME+"/webserver/registerInstrument/?name=FakeClient&value=0");
HttpClient client = new HttpClient();

try {
    int status = client.executeMethod(get);
} catch (HttpException e) {
    System.out.println("[FakeClient] HttpException executing AddInstrument GET request: "+e);
} catch (IOException e) {
    System.out.println("[FakeClient] IOException executing AddInstrument GET request: "+e);
}

Тогда я получаю следующее исключение:

log4j:WARN No appenders could be found for logger (org.apache.commons.httpclient.params.DefaultHttpParams).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.IllegalArgumentException: Host name may not be null
at org.apache.commons.httpclient.HttpHost.<init>(HttpHost.java:68)
at org.apache.commons.httpclient.HttpHost.<init>(HttpHost.java:107)
at org.apache.commons.httpclient.HttpMethodBase.setURI(HttpMethodBase.java:280)
at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:220)
at org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89)
at client.FakeClient.<init>(FakeClient.java:30)
at client.FakeClient.main(FakeClient.java:22)

Сначала я подумал, что это может быть проблемой с журналированием JBoss, но если я получаю доступ к URL через браузер, я получаю нужный XML без проблем.

Это проблема с клиентским приложением Java?

Спасибо

1 Ответ

2 голосов
/ 22 января 2012

log4j: WARN - это просто предупреждение.Это не имеет ничего общего с фактическим генерируемым исключением.

Сообщение об исключении гласит, что «Имя хоста не может быть нулевым».Это ясно указывает на то, что имя хоста неверно.И, глядя на ваш код, я могу обнаружить одну ошибку.

Вам необходимо добавить дополнительную косую черту:

GetMethod get = new GetMethod("http://localhost:8080/" ...
...