Java Servlet HTTP请求REST服务器无法正常工作404?

时间:2013-05-09 10:37:08

标签: java rest servlets apache-commons-httpclient

我创建了一个Java Servlet作为我的网页的代理,使用AJAX来获取跨域请求。

servlet使用参数转到服务器,并返回从存储XML的服务器接收的任何内容。

我试图弄清楚为什么我的Java Servlet使用URL从具有REST的Web Logic Server获取XML不起作用。但是当我使用相同的URL并将其粘贴到浏览器(IE9,Firefox)中时,我得到了一个XML响应。

这是我的代码:

// build URL for specific request
    String url = baseURL + urlParams;

    //debug - check constructed URL
    if (debug.equals("true"))
    System.out.println("Constructed URL is " + url);


    // fetch XML from URL
    HttpClient client = new DefaultHttpClient();
    HttpGet getXML = new HttpGet(url);
    HttpResponse response = client.execute(getXML);
    StatusLine statusLine = response.getStatusLine();

    // Echo whatever headers you are interested in.
    Header[] allHeaders = response.getAllHeaders();

    resp.setStatus(statusLine.getStatusCode());
    BufferedWriter bufferedWriter = null;
    try
    {
        bufferedWriter = new BufferedWriter(resp.getWriter());
        InputStream content = response.getEntity().getContent();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(content,"UTF-8"));
        String temp = null;

        while((temp = bufferedReader.readLine()) != null)
        {
            //debug - check response body
            if (debug.equals("true"))
                System.out.println(temp);

            bufferedWriter.write(temp);
            bufferedWriter.newLine();
        }
    }
    catch (Exception e)
    {
        resp.setStatus(500);
        // handle the exception
    }
    finally
    {
        if(bufferedWriter != null)
        {
            bufferedWriter.flush();
            bufferedWriter.close();
        }
    }

Servlet详细信息 使用apache.http.client

Web XML 2.3

Web Server是Sun One 6.1 SP4(是的,我知道这是遗留系统)

正如我之前所说,我检查了我的服务器日志以查看servlet使用的URL,然后将其复制到我的浏览器中,确实在该位置有一个XML。

我使用的方法不是正确的REST吗?

我做错了吗?

欢迎任何建议!

0 个答案:

没有答案