请参阅jar文件中的网页

时间:2014-03-11 18:34:35

标签: java angularjs rest jar jersey

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

现在我在AngularJS上为这个REST API做了一个单页用户界面,并为主应用程序提供了它。

问题是我无法找到从主项目引用此页面的方法,因为此页面必须位于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文件中的网页以及如何实现这一目标?

每个答案都受到高度赞赏并立即作出回应。

谢谢。

1 个答案:

答案 0 :(得分:3)

这取决于你的意思'参考'。

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

打开InputStream(可能将其包裹在Reader中),您可以从那里复制到OutputStream的{​​{1}}(或HttpServletResponse缠绕在Writer)上。

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

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