2012-01-22 46 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