使用jersey2和jboss 7.11未调用的例外Apper
我在jaxrs项目中有一个异常映射器,用于捕获所有NotFoundException并格式化响应。在Tomcat中运行时,抛出异常时会调用异常映射程序。我现在不得不转到JBoss,一切正常,除了不再调用异常映射器 Web.xml使用jersey2和jboss 7.11未调用的例外Apper,jboss,jersey,jax-rs,jersey-2.0,Jboss,Jersey,Jax Rs,Jersey 2.0,我在jaxrs项目中有一个异常映射器,用于捕获所有NotFoundException并格式化响应。在Tomcat中运行时,抛出异常时会调用异常映射程序。我现在不得不转到JBoss,一切正常,除了不再调用异常映射器 Web.xml <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Restful Web Application</display-name>
<servlet>
<servlet-name>RestConfigServer</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>com.xxx.rest.resources.RestConfigServerResourceImpl</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.xxx.rest.exceptions</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<listener>
<listener-class>com.xxx.ContextListener</listener-class>
</listener>
<servlet-mapping>
<servlet-name>RestConfigServer</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<!-- For JBoss as it ships with RESTEasy JAX-RS as a implicit dependency -->
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.providers</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.resources</param-name>
<param-value>false</param-value>
</context-param>
Restful Web应用程序
RestConfigServer
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.classnames
com.xxx.rest.resources.RestConfigServerResourceImpl
jersey.config.server.provider.packages
com.xxx.rest.exceptions
1.
com.xxx.ContextListener
RestConfigServer
/*
轻松扫描
假的
resteasy.scan.providers
假的
resteasy.scan.resources
假的
异常映射程序
import javax.ws.rs.NotFoundException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
import com.openet.modules.config.server.rest.response.ErrorInfo;
import com.openet.modules.config.server.rest.response.ErrorResponse;
@Provider
public class NotFoundExceptionMapper implements ExceptionMapper<NotFoundException> {
public Response toResponse(NotFoundException ex) {
ex.printStackTrace();
return Response
.status(ex.getResponse().getStatus())
.entity(new ErrorResponse(new ErrorInfo(ex)))
.type(MediaType.APPLICATION_JSON)
.build();
}
}
import javax.ws.rs.NotFoundException;
导入javax.ws.rs.core.MediaType;
导入javax.ws.rs.core.Response;
导入javax.ws.rs.ext.ExceptionMapper;
导入javax.ws.rs.ext.Provider;
导入com.openet.modules.config.server.rest.response.ErrorInfo;
导入com.openet.modules.config.server.rest.response.ErrorResponse;
@提供者
公共类NotFoundExceptionMapper实现ExceptionMapper{
公众对响应的响应(非发现异常){
例如printStackTrace();
返回响应
.status(例如getResponse().getStatus())
.entity(新错误响应(新错误信息(ex)))
.type(MediaType.APPLICATION_JSON)
.build();
}
}
从jersey的2.7版移动到2.24版,现在调用异常映射器。从jersey的2.7版移动到2.24版,现在调用异常映射器