2

我有一个 Java EE 应用程序,在 WebLogic 10.3.5 和 Java 6 下运行。我曾经有一个 pdf 帮助文件,嵌入在我的 war 文件中,但我需要从那里提取它并将其放在外部目录中(它可以在我的同一个 WebLogic 域目录中)。

我试图把它放在我的 WebLogic 域中,然后放到 <a href> 中,但似乎浏览器有限制,出于安全原因,不允许使用 href 或 javascript 下载本地文件。

这曾经仅适用于保存在我的计算机上的静态 HTML 文件,但 HTML 页面部署在服务器上,这似乎是不可能的。

知道如何从我的战争文件中外部化我的 help.pdf 文件吗?

4

3 回答 3

3

尽管某些应用服务器允许 Java EE 应用程序引用 Web 容器之外的文件,但实际上,您的 Web 应用程序不应该对 Web 容器之外的任何内容有任何了解,而且正如您所提到的,这确实是一个巨大的安全问题.

根据您尝试使用此 PDF 文件完成的任务,如果您只想在网络上公开此文件,请按照 @duffmo 所说的操作,它会正常工作。如果您希望灵活地频繁修改此 PDF 文件而无需一次又一次地重新创建 war 文件,您可能需要考虑将此 PDF 文件托管在某些 HTTP Web 服务器(Apache2、IIS 等)中,现在您从您的 Web 引用该链接应用程序。

于 2013-01-17T01:59:43.527 回答
3

@limc 是对的

您应该将此静态文件作为 Apache Web 服务器上的文件完全放在 Weblogic 之外

但是,在 Weblogic 中有一个虚拟目录映射功能,它允许您将 weblogic 域之外的文件夹声明为任何静态内容的内容存储。

http://docs.oracle.com/cd/E11035_01/wls100/webapp/weblogic_xml.html#wp1039396

此条目位于 WEB-INF/weblogic.xml

<virtual-directory-mapping>      
<local-path>c:/usr/mypdfs</local-path>      
<url-pattern>/pdf/*</url-pattern>      
</virtual-directory-mapping>
于 2013-01-17T05:43:11.123 回答
0

您需要将它放在 Web 上下文的根目录中,与 HTML 页面完全相同。您的网络服务器将能够在那里找到它。

于 2013-01-17T01:51:01.323 回答