Jooby Webserver 总是抛出错误“406 不可接受:text/html”
Jooby Webserver Always throwing error "406 Not acceptable: text/html"
我正在设置一个简单的 Jooby Web 服务器。我有一个 App.java 和一个 home.html 文件。现在,我唯一想让它做的是,如果你打开主页,它会显示一个 html 页面,上面写着 "Hello World"。
但是,我总是收到错误 "org.jooby.Err: Not Acceptable(406): text/html".
我通过 maven 使用原型创建了项目,但我也尝试使用 gradle 创建它。我运行程序用Java8,在IntellIJ IDEA。我已经尝试过使用不同的 HTML 文件,但我认为它没有任何问题,因为如果我 return 它作为原始字符串,它就可以工作(我只是不想这样做是因为我将无法正常使用 Java 脚本和图像文件)。我也尝试过在单独的 class 中使用 get() 方法来完成它,并且我尝试不 return 结果而是 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.access0(AbstractChannelHandlerContext.java:38)
at io.netty.channel.AbstractChannelHandlerContext.run(AbstractChannelHandlerContext.java:353)
at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:66)
at io.netty.util.concurrent.SingleThreadEventExecutor.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:748)
Results.html 需要 template engine。如果你只想显示一个静态页面,试试这个:
{
assets("/", "index.html");
}
index.html
文件必须位于类路径的根目录。
我正在设置一个简单的 Jooby Web 服务器。我有一个 App.java 和一个 home.html 文件。现在,我唯一想让它做的是,如果你打开主页,它会显示一个 html 页面,上面写着 "Hello World"。 但是,我总是收到错误 "org.jooby.Err: Not Acceptable(406): text/html".
我通过 maven 使用原型创建了项目,但我也尝试使用 gradle 创建它。我运行程序用Java8,在IntellIJ IDEA。我已经尝试过使用不同的 HTML 文件,但我认为它没有任何问题,因为如果我 return 它作为原始字符串,它就可以工作(我只是不想这样做是因为我将无法正常使用 Java 脚本和图像文件)。我也尝试过在单独的 class 中使用 get() 方法来完成它,并且我尝试不 return 结果而是 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.access0(AbstractChannelHandlerContext.java:38)
at io.netty.channel.AbstractChannelHandlerContext.run(AbstractChannelHandlerContext.java:353)
at io.netty.util.concurrent.DefaultEventExecutor.run(DefaultEventExecutor.java:66)
at io.netty.util.concurrent.SingleThreadEventExecutor.run(SingleThreadEventExecutor.java:858)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
at java.lang.Thread.run(Thread.java:748)
Results.html 需要 template engine。如果你只想显示一个静态页面,试试这个:
{
assets("/", "index.html");
}
index.html
文件必须位于类路径的根目录。