【发布时间】:2018-10-31 10:17:37
【问题描述】:
我在日食氧气中运行 JBOSS 6.4 EAP。
我有一个简单且有效的 web 服务,它刚刚返回是活跃的。
当我将 url 模式配置为“ /* ”时,它会按预期执行。当我在 url-pattern 中添加更实质性的模式“/rws/*”时,我得到 404
我的网址是 localhost:8080/mesh/rws/menu/isAlive
web.xml 失败此 servlet 没有对应的 servlet 块
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/rws/*</url-pattern>
</servlet-mapping>
Servlet 类
@Path("/rws/menu")
public class MenuService
{
@GET
@Path("/isAlive")
public Response isAlive()
{
return Response.ok("I am alive").build();
}
}
来自服务器的错误
JBWEB000065:HTTP 状态 404 - RESTEASY001185:找不到相对资源:/menu/isAlive 的完整路径:http://localhost:8080/mesh/rws/menu/isAlive
上下文参数 我已尝试按照在线各个地方的建议将上下文参数添加到 web.xml,但它似乎已经设置好了,我不知道如何超越。
<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/rws</param-value>
</context-param >
产生错误:
ERROR [org.apache.catalina.core] (ServerService Thread Pool -- 64) JBWEB001097: Error started context /mesh: java.lang.IllegalArgumentException: JBWEB000280: Duplicate context initialization parameter resteasy.servlet.mapping.prefix
【问题讨论】:
-
当你在 url 模式中有
/rws/*时,你也不应该把/rws放在@Path中。如果这样做,则 url 将是/rws/rws。 url-pattern 是整个应用程序的前缀 -
@PaulSamsotha 您建议的解决方案也有效。如果您输入答案,我可以接受。