Log4j初始化错误JBoss RestEasy

时间:2012-01-22 00:02:44

标签: jboss log4j resteasy

我正在使用JBoss 6.0。我正在使用jboss.resteasy库运行一个简单的Web服务器,以便为HTTP请求提供简单的XML响应。

我有: - 服务器 - 一个创建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客户端应用程序的问题吗?

谢谢

1 个答案:

答案 0 :(得分:2)

'log4j:WARN'只是一个警告。它与抛出的实际异常无关。

异常消息指出'主机名可能不为空'。这清楚地表明主机名有问题。看着你的代码,我发现了一个错误。

您需要添加额外的正斜杠:

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