使用 Apache、Tomcat 和来自 Java 网络应用程序的 modjk 发布到 HttpURLConnection

Posting to HttpURLConnection with Apache, Tomcat and modjk from Java web application

我遇到了一个问题,但我不知道如何解决。 我在 tomcat 上部署了一个 java 应用程序。 tomcat 在使用 modjk 的 apache 后面。 在应用程序中,我将一些 XML 发布到 URL,如下所示:

URLConnection uc = url.openConnection();
HttpURLConnection conn = (HttpURLConnection) uc;
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-type", "text/xml");
PrintWriter pw = new PrintWriter(conn.getOutputStream());
pw.write(xml);
pw.close();
ServletOutputStream stream = response.getOutputStream();
BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
int readBytes;
while ((readBytes = bis.read()) != -1) {
  stream.write(readBytes);
}
bis.close();
stream.close();

URL 指向另一台服务器上的 Web 应用程序。

如果我是 运行 直接来自 tomcat 的应用程序,一切正常。发布 XML 后,请求的页面将在浏览器中打开。

如果我是 运行 使用带有 modjk 的 apache 的应用程序,则只显示请求页面的 HTML 代码而不是呈现的页面。应用程序的其余部分工作正常。

我想使用 apache 和 modjk 发布到 URL 时出现问题。有谁知道如何解决这个问题?

我找到了解决这个问题的方法。我只需要明确设置内容类型:

response.setContentType("text/html;charset=UTF-8");

通过仅使用 tomcat,它不是必需的,但在使用 apache 作为反向代理时似乎是必需的。