【问题标题】:Refer to a web page inside a jar file引用 jar 文件中的网页
【发布时间】:2014-03-12 02:45:10
【问题描述】:

我有一个工作项目。它包括另一个将 REST 作为 rest-api.jar 处理的项目。

现在我已经在 AngularJS 上为这个 REST API 完成了一个单页 UI,并将它提供给主应用程序。

问题是我找不到从主项目中引用此页面的方法,因为此页面必须在 rest_api.jar 中

这是我解决它的一种方法。只需重定向到一个页面:

@GET
@Produces(MediaType.TEXT_HTML)
public void doGetAsHtml(@Context
UriInfo info, @Context
HttpServletResponse servletResponse) throws IOException
{
    servletResponse.sendRedirect("/web/pages/index.html");
}

那么,是否可以引用您的项目 jar 文件中的网页以及如何实现?

每一个答案都受到高度赞赏并立即回复。

谢谢。

【问题讨论】:

    标签: java angularjs rest jar jersey


    【解决方案1】:

    这取决于你所说的“参考”是什么意思。

    您可以使用 Class.getResourceAsStream() 打开类路径上的文件(例如,在应用程序使用的 jar 文件中)并将路径传递给它,例如'/resource/html/index.html'(不要省略前导斜杠,使用斜杠而不是反斜杠)。

    打开InputStream(可能将其包裹在Reader)后,您可以从那里复制到HttpServletResponseOutputStream(或包裹在OutputStream 周围的Writer)。

    您可能希望以Reader 打开并写入Writer 的原因是,如果文件的编码(在 jar 中)不是您希望发送 HTML 的编码(例如,在响应头)。

    (当然,这是一种通用方法,与 REST 或 AngularJS 无关。)

    【讨论】:

    • 我之前尝试过这种方法,但我无法获得正确搜索文件的类路径值。
    • 您确定您的文件已包含在作为应用程序一部分部署的 .jar 文件之一中吗? (您可以使用jar -tvf myfile.jar 列出 .jar 中的文件。)您确定您有正确的路径吗?如果你不 getResourceAsStream() 只返回 null(即你没有得到 IOException)。
    猜你喜欢
    • 2012-07-15
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 2014-03-12
    相关资源
    最近更新 更多