【问题标题】:How can I externalize a PDF from a Java EE application?如何从 Java EE 应用程序外部化 PDF?
【发布时间】:2012-12-31 12:18:24
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java html jakarta-ee web weblogic


    【解决方案1】:

    @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】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-19
        • 2012-09-04
        相关资源
        最近更新 更多