MSF4J:提供静态内容

MSF4J: Serving static content

MSF4J 应用程序可以在不使用 Mustache 模板引擎的情况下提供静态内容。我开发了一个 REST 服务,该服务将由一个已经开发的 angular 网络应用程序使用。现在我需要将相同的 angular 应用程序与微服务打包,以便它在浏览器中呈现并通过 ajax 调用使用该服务。

MSF4J 不直接支持提供静态内容。根据您的问题,我的理解是您想将 MSF4J 服务器指向一个目录,并通过其相对路径或类似路径为该目录中的资源提供服务。在这种情况下,您可以做的是编写一个带有通配符路径的 MSF4J 服务方法,并提供与请求路径匹配的静态内容。

@Path("/")
public class FileServer {

    private static final String BASE_PATH = "/your/www/dir";

    @GET
    @Path("/**")
    public Response serveFiles(@Context Request request) {
        String uri = request.getUri();
        System.out.println("Requested: " + uri);
        File file = Paths.get(BASE_PATH, uri).toFile();
        if (file.exists()) {
            return Response.ok().entity(file).build();
        } else {
            return Response.status(404).entity("<h1>Not Found</h1>").build();
        }
    }
}