この両方が「共存」するための正しい構成は何ですか:
http://localhost:8888/index.html
http://localhost:8888/{some_path_value}
/public/images/bg.png
最初の項目は html ページを返し、リソースなどにアクセスする href も含まれます。
2 番目のアイテムは、同じルート コンテキストとページを提供するコンテキスト (index.html、png、jpg、css、js など) にマップされる Restful API です。
したがって、私が現在直面している問題は、Rest API サーブレット マッピングを次のように構成するときです。
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Rest API は機能しますが、index.html、css、js などの静的リソースへのアクセスを効果的に削除して、「ホームページ」をレンダリングします。
ただし、マッピングを GWT アプリのようなものに変更すると、/api/*
アクセスできるようになりますが、Rest API の PATH はルートではなくなります。
では、私のアプリで何が間違っているのでしょうか? 両方を同じパスに共存させる必要があります。私の最初のアイデアは、何らかのフィルターを実行することですが、より簡単で適切な解決策があるかもしれません。
アップデート:
私のアプリのguiceモジュール:
public class MyModule implements Module
{
public void configure(final Binder binder)
{
binder.bind(MyResource.class);
}
}
web.xml
<context-param>
<param-name>resteasy.guice.modules</param-name>
<param-value>org.jboss.errai.ui.demo.server.MyModule</param-value>
</context-param>
<listener>
<listener-class>
org.jboss.resteasy.plugins.guice.GuiceResteasyBootstrapServletContextListener
</listener-class>
</listener>
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/api</param-value>
</context-param>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>