这两者“共存”的正确配置是什么:
http://localhost:8888/index.html
http://localhost:8888/{some_path_value}
第一项将返回一个 html 页面,并且还将包含将访问资源/public/images/bg.png
等的 href。
现在第二个项目是一个 Restful api,它映射在同一个根上下文广告中,服务于页面(index.html、png、jpg、css、js 等)
所以我现在面临的问题是,当我像这样配置 Rest API servlet 映射时:
<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>