如何在tomcat上的servlet下发送XML文件?

时间:2011-04-01 11:23:21

标签: java xml tomcat servlets

我在tomcat上运行了两个Web服务,可以将它们称为X和Y.

当Y在X中请求Y时,Y中有一个带有XML的字符串,现在我想将这个XML字符串返回给X.

我该怎么做?

无论如何都要提出X servlet等待响应的特殊请求?或者我真的需要重定向?

你的时间。

2 个答案:

答案 0 :(得分:2)

由于您有一个java标记,我假设您使用的是java servlet。

X得到一个XML,应该转到y? 最简单的方法是让X为y创建请求并将响应转发给发出请求的人。

您可以使用HTTPClient类。

因此,一旦您将请求从X发送到Y,X将等到Y回复。

如果您不确定如何执行此检查,请参阅java docs http://download.oracle.com/javase/1.5.0/docs/api/java/net/HttpURLConnection.html

确保你检查变量集和参数,我从我的一些代码

中提取了这个

代码:

try {
        URL url = new URL(server);

        HttpURLConnection con;
        con=(HttpURLConnection) url.openConnection();
        con.setRequestProperty("Content-type", "text/xml; charset=UTF-8");
        con.setRequestMethod("POST");
        con.setDoOutput(true);
        con.setDoInput(true);


        OutputStream out = con.getOutputStream();
        Writer writer = new OutputStreamWriter(out, "UTF-8");

        writer.write(xml);



        writer.flush();
        writer.close();

        InputStream is= con.getInputStream();

//This gets sent to the client
            return set_courses(is);


    } catch (Exception e){
        e.printStackTrace();
        status_message= "Custom 1: "+e.getMessage();
        return false;
    }

答案 1 :(得分:0)

为什么不让X只通过URL或commons-http调用Y,并阻塞直到返回响应?那么X将拥有XML并且可以随心所欲地做任何事情。