2012-01-22 44 views
2

我正在使用JBoss 6.0。我使用jboss.resteasy庫運行一個簡單的Web服務器,爲HTTP請求提供簡單的XML響應。Log4j初始化錯誤JBoss RestEasy

我: - 服務器 - 創建一個GET請求

一個簡單的Java客戶端現在的事情是,如果我用瀏覽器訪問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客戶端應用程序的問題嗎?

謝謝

回答

2

的 '的log4j:WARN' 只是一個警告。它與拋出的實際異常沒有任何關係。

異常消息指出'主機名不能爲空'。這清楚地表明主機名有錯誤。看着你的代碼,我可以發現一個錯誤。

您需要添加一個額外的斜槓:

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

@VascoPatricio,請告訴我們,如果這能解決你的問題。 – alexsmail

+0

謝謝你的時間。問題恰恰在於此。我是速度編碼,並犯了一個非常基本的錯誤...此外,從未使用過log4j,我認爲這個警告導致了崩潰......謝謝! –

+0

不客氣:) – eiden