我在日食氧气中运行JBOSS 6.4 EAP。
我有一个简单而有效的网络服务,只是返回活着。
当我将url-pattern配置为" / *"它按预期执行。当我提出一个更实质的模式" / rws / *"在url-pattern中我得到了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 of full path: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 >
产生错误:
错误[org.apache.catalina.core](ServerService线程池 - 64)JBWEB001097:启动上下文/网格时出错:java.lang.IllegalArgumentException:JBWEB000280:重复的上下文初始化参数resteasy.servlet.mapping.prefix
答案 0 :(得分:0)
这是我最终的结果。我不能完整地解释为什么这样有效,但这是我的specuylation。这使用core.Application类定义了一个新的servlet,因此忽略了问题中使用的默认实现。因此,不需要像我在原始问题中尝试那样设置上下文参数。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<servlet>
<servlet-name>EbigExtWS</servlet-name>
<servlet-class>javax.ws.rs.core.Application</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>EbigExtWS</servlet-name>
<url-pattern>/rws/*</url-pattern>
</servlet-mapping>
</web-app>
答案 1 :(得分:0)
如果您在网址格式中有/rws/*
,那么 /rws放入@Path
。如果您这样做,那么网址将为/rws/rws
。 url-pattern是整个应用程序的前缀。因此,只需从/rws
中删除@Path
。