我以前使用过 JBoss 和 WebLogic,但在我目前的工作中,我们使用的是 OC4J,这对我来说是第一次。我认为我的问题可能与此有关。我正在创建一个 EAR 文件,其中包含一个 WAR 文件。顶级 JSP 似乎可以正确显示,但是当我尝试在子目录中显示 JSP(如 secure/index.do 或 secure/header.jsp)时,浏览器会询问我是否要保存文件。如果我保存它,它是一个 0 字节大小的文件。实际上,我也尝试了secure/index.xyz,我知道它不存在,它做了同样的事情。我知道那些其他文件/servlet 存在。关于可能导致这种情况的任何提示?
5 回答
我相信浏览器会提示您为它无法识别的内容类型保存文件。在这种情况下,服务器响应可能包含乱码或不正确的内容类型。
从您对问题的其余描述来看,这听起来像是一般的服务器配置问题。您要做的一件事是检查服务器是否提供了任何示例项目(或 EAR),并查看您是否可以重现相同的问题。如果您看到相同的行为,这指向配置,如果没有,它可能不喜欢您的部署。
我同意理智的达纳。可能您的 Web 服务器或 JBoss 在响应中返回了错误的内容类型。如果您有 Wireshark,请在客户端上运行 Wireshark,然后查看响应中的 HTTP 标头。我希望内容类型标头是您的浏览器不知道如何处理或显示的内容。
如果您使用的是 firefox 安装 LiveHTTPHeaders,请查看当您访问给您带来麻烦的 url 时服务器返回给浏览器的内容。如果它是一个奇怪的 content-type 值或者有一个 content-disposition 标头,那就是问题所在。
埃迪是对的!
否则,如果服务器上的负载太高,可能会导致渲染错误。
找到了。你们在内容类型问题上基本上是正确的,但是我的代码中有一个潜在的错误导致了这个问题。我创建了一个过滤器,称为 SecureActionFilter,只要有 /secure/* URL 就会调用它。问题是我打破了链条。我忘记将“chain.doFilter(req, res)”添加到我的“doFilter”方法的末尾。因此,该请求从未转发到 JSP,因此没有任何内容返回给浏览器,包括任何 MIME 类型,然后浏览器尝试将长度为 0 的内容保存到我的文件系统中。