2017-05-04 32 views
1

我有我的JAXRS項目的異常映射器來捕獲所有NotFoundException的和格式化的響應。在Tomcat中運行時,在引發異常時調用異常映射器。我現在不得不轉移到JBoss,並且一切工作正常,除了異常映射器不再被調用。ExceptionMapper不叫有jersey2和JBoss 7.11

的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" 
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> 

異常映射

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(); 
    } 
} 

回答

0

從2.7版本移到球衣的2.24和異常映射現在叫。

相關問題