当前位置: 首页 > 知识库问答 >
问题:

使用jersey2和jboss 7.11未调用的例外Apper

羊舌旭尧
2023-03-14

我在jaxrs项目中有一个异常映射器来捕获所有NotFoundExcture并格式化响应。在Tomcat中运行时,在引发异常时调用异常映射器。我现在不得不转移到JBoss,所有的工作都很好,除了异常映射器不再被调用。

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

共有1个答案

王弘和
2023-03-14

从泽西的2.7版移动到2.24版,现在调用异常映射器。

 类似资料:
  • 问题内容: 我使用的是,上传的文件是 控制台显示: 问题答案: 只需使用 而不是创建实例即可:或。

  • 问题内容: 在Obj-C中,常见的做法是使用便利功能执行常见的操作,例如为视图配置自动布局: 如果您只需要设置约束而忘了它,则可以调用: 如果要稍后存储约束以便可以删除/修改约束,则可以执行以下操作: 我想快速执行此操作,但是如果我调用上述函数并且不捕获返回的约束,则会收到警告: 很烦人。有什么方法可以让Swift知道我并不总是想获取返回值吗? 注意:我知道这一点。这很丑陋,而不是我要的东西: 问

  • 我正在使用一个去福尔菲区域从我的基于网络的服务器进行下游访问。当客户端接收数据时,我添加到频道未来的频道进程接收器永远不会被调用。我在使用netty编程方面不是很有经验,所以我认为我误解了nettys渐进式频道未来的工作原理。因此,我在这里查看了我在这里找到的示例代码:programcreek.com.但它基本上是相同的代码?我试图在这里找到类似的问题,但找不到原因。提前感谢您的任何提示,为什么听

  • 我正在使用JSF2.0和Primefaces 3.2实现一个webapp。我注意到了一个意想不到的行为:我有一个和一个,如下所示 如果不是,则不会调用方法。我根本看不到任何异常或错误,只是没有调用它。下面是支持bean: myObj的代码:

  • 问题内容: 我正在尝试编写一个程序,该程序使用mongoose从mongo数据库中获取文档,并使用API​​对其进行处理,然后使用处理结果编辑数据库中的每个文档。我的问题是我有问题,因为我不完全了解nodejs和异步。这是我的代码: 问题在于,在findOneAndUpdate中,tweets是未定义的,因此无法找到该ID。有什么办法吗?谢谢 问题答案: 您真正缺少的核心是Mongoose API

  • 这是示例代码。在使用mockito或@Beofre注释之前,一切似乎都很好。现在它可以正确地模拟对象,但某些工厂没有正确地自动连接。 在莫基托之前,一切都很顺利。