これは私の現在の 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/
I need to forward to http://127.0.0.1:8888/index.html
automatically. 今のところ、手動で index.html を末尾に配置する必要があります。
私の Resteasy リソースは、次のように構成または配線されています。
@Singleton
@Path("/")
public class MyRest {
@GET
@Path({hashcode})
public Response getSomething(...){}
@POST
@Path("create")
public Response createSomething(...){}
}