我正在设置一个简单的Jooby Web服务器。我有一个App.java和一个home.html文件。现在,我唯一要做的是,如果打开主页,它将显示一个显示“ Hello World”的html页面。 但是,我总是收到错误消息“ org.jooby.Err:不可接受(406):text / html”。
我通过带有原型的Maven创建了项目,但是我也尝试使用gradle创建它。我在IntellIJ IDEA中使用Java 8运行该程序。我已经尝试过使用不同的HTML文件,但是我认为它没有任何问题,因为如果我将其作为原始String返回,它就可以工作(我只是不想这样做,因为我不会能够正常使用JavaScript和图片文件)。我也尝试过在一个单独的类中使用get()方法来执行此操作,而我尝试不返回Result而是执行response.send(result)。
这是我的代码:
home.html:
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);
}
}
App.java:
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)
我显然希望它只向我显示“ Hello World”文本,但相反,它将向我显示带有以下堆栈跟踪的屏幕:
m2.title
答案 0 :(得分:1)
Results.html需要template engine。如果您只想显示静态页面,请尝试以下操作:
{
assets("/", "index.html");
}
index.html
文件必须位于类路径的根目录。