如何从Java EE应用程序外部化PDF?

时间:2013-01-17 01:45:25

标签: java html java-ee web weblogic

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

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

以前只能在我的计算机上保存的静态HTML文件上工作,但是在服务器上部署HTML页面,似乎无法实现。

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

@limc是对的

你应该把这个静态文件放在Weblogic之外,作为Apache Web服务器上的文件

但是,在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>

答案 2 :(得分:0)

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