возвращение html-страницы в вызов API, джерси и пристани - PullRequest
0 голосов
/ 22 октября 2018

У меня есть приложение, которое использует сервер Jetty следующим образом:

public class RunServer {
public static void main(String[] args) throws Exception {

    ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
    context.setContextPath("/");

    Server jettyServer = new Server(8080);
    jettyServer.setHandler(context);

    ServletHolder jerseyServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/rest/*");
    jerseyServlet.setInitOrder(0);

    // Tells the Jersey Servlet which REST service/class to load.
    jerseyServlet.setInitParameter(
            "jersey.config.server.provider.packages", "rest");

    ResourceHandler webHandler = new ResourceHandler();
    webHandler.setDirectoriesListed(true);
    webHandler.setResourceBase("src/main/webapp");
    webHandler.setWelcomeFiles(new String[]{"index.html"});

    // Handler
    HandlerCollection handlers = new HandlerCollection();
    handlers.addHandler(webHandler);
    handlers.addHandler(context);
    jettyServer.setHandler(handlers);

    try {
        jettyServer.start();
        jettyServer.join();
    } finally {
        jettyServer.destroy();
    }
  }
}

Когда я запускаю сервер и обращаюсь к localhost: 8080 через браузер, он отображает index.html, а также я могу получить доступ к REST APIконечная точка, которая выглядит как

@GET
@Produces(MediaType.TEXT_PLAIN)
public String getString(){
    return "This is a test response";
}

Это вывод браузера enter image description here

Но, когда я пытаюсь отобразить html-файл test.html, расположенный в src/main/webapp/test.html вот так

@GET
@Produces(MediaType.TEXT_HTML)
public Response helloResource() {
    return Response.ok(new Viewable("/test")).build();
}

Я получаю сообщение об ошибке HTTP 500 с ошибкой в ​​журнале сервера

SEVERE: MessageBodyWriter not found for media type=text/html, type=class                org.glassfish.jersey.server.mvc.Viewable, genericType=class   org.glassfish.jersey.server.mvc.Viewable.

Буду очень признателен, если кто-нибудь даст мне несколько советов о том, какисправить это.

...