这是我当前的 Guice 配置:
public class MyServletModule extends ServletModule {
@Override
protected void configureServlets() {
bind(MyRest.class);
serveRegex(".+(?<!\\.(html|css|png|jpg))")
.with(HttpServletDispatcher.class);
}
}
但是我希望我的 Rest 资源只能以的形式访问,http://127.0.0.1:8888/{hashcode_or_filename}
并且是唯一接受和处理的形式(好吧,加上下面的 /create 方法)。
现在,我可以在这个路径模式中正确处理哈希码和文件名。
但是我不确定如何处理下面的类型或场景,其中客户端请求未映射的路径,在我的情况下返回:
找不到相对资源:/examples/foo 的完整路径:
http://127.0.0.1:8888/examples/foo
或者
找不到相对资源:/examples/bar/foo 的完整路径:
http://127.0.0.1:8888/examples/bar/foo
我需要的是能够处理未映射的路径,以便我可以返回错误 HTML 页面或其他内容,而不是在浏览器中显示这些错误文本。
另外,如果请求是:http://127.0.0.1:8888/
我需要http://127.0.0.1:8888/index.html
自动转发。现在我必须手动将 index.html 放在尾部。
我的 Resteasy 资源仅配置或连接:
@Singleton
@Path("/")
public class MyRest {
@GET
@Path({hashcode})
public Response getSomething(...){}
@POST
@Path("create")
public Response createSomething(...){}
}