Jooby Webserver Всегда выдает ошибку "406 Недопустимо: text/html"
Я настраиваю простой веб-сервер 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 ответ
Results.html требует шаблонного движка. Если вам нужно только показать статическую страницу, попробуйте это:
{
assets("/", "index.html");
}
index.html
Файл должен быть в корне пути к классам.