Jooby Webserver Всегда выдает ошибку "406 Недопустимо: text / html" - PullRequest
0 голосов
/ 04 февраля 2019

Я настраиваю простой веб-сервер Jooby.У меня есть файл App.java и home.html.Пока единственное, что я хочу, это то, что если вы откроете домашнюю страницу, она покажет html-страницу с надписью «Hello World».Тем не менее, я всегда получаю сообщение об ошибке «org.jooby.Err: Not Acceptable (406): text / html».

Я создал проект через maven с архетипом, но я также пытался создать егос Gradle.Я запускаю программу с Java 8, в IntellIJ IDEA.Я уже пробовал использовать разные HTML-файлы, но я не думаю, что с этим что-то не так, потому что, если я возвращаю его как необработанную строку, это работает (я просто не хочу этого делать, потому что я не будуумеет нормально использовать JavaScript и файлы изображений).Я также попытался сделать это в отдельном классе, используя метод get (), и я попытался не возвращать Result, а вместо этого сделать response.send (result).

Вот мой код:

home.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>
    Hello World!
</body>
</html>

App.java:

public class App extends Jooby {
    {
        get("/", req -> {
            //Line that throws the error:
            return Results.html("home").put("model", new Object());
        });
    }

    public static void main(final String[] args) {
        run(App::new, args);
    }
}

Я бы, конечно, ожидал, что он просто покажет мне текст "Hello World", но вместо этогоон показывает мне экран со следующей трассировкой стека:

org.jooby.Err: Not Acceptable(406): text/html

at org.jooby.internal.AbstractRendererContext.render(AbstractRendererContext.java:280)

at org.jooby.internal.ResponseImpl.send(ResponseImpl.java:562)

at org.jooby.Response.send(Response.java:624)

at org.jooby.Route$OneArgHandler.handle(Route.java:2000)

at org.jooby.internal.RouteImpl.handle(RouteImpl.java:282)

at org.jooby.internal.RouteChain.next(RouteChain.java:262)

at org.jooby.Route$Chain.next(Route.java:2345)

at org.jooby.internal.HttpHandlerImpl.handle(HttpHandlerImpl.java:497)

at org.jooby.internal.netty.NettyHandler.channelRead0(NettyHandler.java:271)

at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)

at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)

at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:38)

at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:353)

at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:66)

at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)

at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)

at java.lang.Thread.run(Thread.java:748)

1 Ответ

0 голосов
/ 04 февраля 2019

Results.html требует шаблонизатора .Если все, что вам нужно, это показать статическую страницу, попробуйте следующее:

{
  assets("/", "index.html");
}

Файл index.html должен находиться в корне пути к классам.

...