Я использую 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?
Спасибо