我有一个工作项目。它包括另一个将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文件中的网页以及如何实现这一目标?
每个答案都受到高度赞赏并立即作出回应。
谢谢。
答案 0 :(得分:3)
这取决于你的意思'参考'。
您可以使用Class.getResourceAsStream()
打开类路径上的文件(例如,在您的应用程序使用的jar文件中)并将其传递给路径,例如' /resource/html/index.html' (不要忽略主要斜线,并使用斜线而不是反斜杠)。
打开InputStream
(可能将其包裹在Reader
中),您可以从那里复制到OutputStream
的{{1}}(或HttpServletResponse
缠绕在Writer
)上。
您可能希望以OutputStream
打开并写为Reader
的原因是文件的编码(在jar中)不是您希望HTML发送的编码(例如在响应头中设置。)
(当然,这是一种通用的方法,与REST或AngularJS无关。)