我有一个Java EE应用程序,在WebLogic 10.3.5和Java 6下运行。 我以前有一个pdf帮助文件,嵌入在我的war文件中,但我需要从那里提取它并将它放在一个外部目录中(它可以在我的同一个WebLogic域目录中)。
我试图把它放在我的WebLogic域中,然后转到< a href>它,但似乎浏览器有限制,出于安全原因不允许使用href或javascript下载本地文件。
以前只能在我的计算机上保存的静态HTML文件上工作,但是在服务器上部署HTML页面,似乎无法实现。
知道如何从war文件中外化我的help.pdf文件吗?
答案 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页面完全相同。您的网络服务器将能够在那里找到它。