你的意思是如果你的休息服务在localhost/rest下监听,那么localhost/rest/asdf应该返回给你一个自定义的404页面?它特定于JAX-RS引擎,您必须检查Jersey的源代码。例如,CXF抛出一个WebApplicationException,但它没有提供任何方式来定制它。见JAXRSInInterceptor.processRequest()线156,看看它是如何做:
org.apache.cxf.common.i18n.Message errorMsg =
new org.apache.cxf.common.i18n.Message("NO_ROOT_EXC",
BUNDLE,
message.get(Message.REQUEST_URI),
rawPath);
LOG.warning(errorMsg.toString());
Response resp = JAXRSUtils.createResponse(resource, message, errorMsg.toString(),
Response.Status.NOT_FOUND.getStatusCode(), false);
throw new WebApplicationException(resp);
总之没有好和标准的方式,你可以尝试使用请求过滤器或ExceptionMapper
新泽西州实现自己的['NotFoundException'](http://jersey.java.net/nonav/apidocs/1.5/jersey/com/sun/jersey/api/NotFoundException.html) – toniedzwiedz
我在玩泽西岛2.0(里程碑),可以找到一个['NotFoundException'](http://jersey.java.net/nonav/apidocs/snapshot/jersey/javax/ws/rs/NotFoundException.html)只在客户端。如果没有找到资源,你知道泽西岛2.0使用什么异常吗? – deamon
我还不熟悉Jersey 2.0。在我的Jersey 1.8应用程序中,我抛出'com.sun.jersey.api.NotFoundException',它也可以使用'javax.ws.rs.WebApplicationException',你可以传递一个异常和一个'javax.ws.rs.core .Response'实例给它的构造函数。泽西岛应该弄清楚,如果你建立“响应”有一个404状态。 – toniedzwiedz