【发布时间】:2014-01-22 08:49:37
【问题描述】:
我有一个 Jersey REST 2.5.1 服务,它通过 Grizzly 服务器提供服务。到目前为止一切正常。我想添加一些静态内容,这些内容也通过 Grizzly 提供并从我的 JAR 文件中提供。因此我使用CLStaticHttpHandler。当我显式访问静态资源,例如我的index.html(例如http://localhost:8080/index.html)时,一切正常。但是,当我尝试访问根 http://localhost:8080 时,我得到了 404。代码如下所示:
ObjectMapper mapper = new ObjectMapper();
// some configuration stuff here
JacksonJaxbJsonProvider provider = new JacksonJaxbJsonProvider();
provider.setMapper(mapper);
ResourceConfig resourceConfig = new ResourceConfig()
.packages("my.restapi.package")
.register(provider);
HttpServer httpServer = GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), resourceConfig);
HttpHandler httpHandler = new CLStaticHttpHandler(HttpServer.class.getClassLoader(), "/static/");
httpServer.getServerConfiguration().addHttpHandler(httpHandler, "/");
据我从调试中得知,org.glassfish.grizzly.http.server.CLStaticHttpHandler.handle(String, Request, Response) 永远不会被调用。任何提示,我怎样才能使index.html 作为默认页面访问?
【问题讨论】:
标签: java grizzly jersey-2.0