Jersey 2.0 和 Moxy 内部服务器错误但没有服务器日志

2024-04-16

我遵循了 Jersey 2.0 文档(https://jersey.java.net/documentation/latest/user-guide.html#json.moxy https://jersey.java.net/documentation/latest/user-guide.html#json.moxy),修改pom.xml,包含jersey-media-moxy神器,编译安装。我可以为生产者和消费者案例提供基本的 POJO 到 JSON 映射工作。

然而,当我尝试使用一些具有复杂数据类型作为资源返回类型的 POJO 时,我收到了很多 Status 500 Internal Server Error,但没有任何服务器日志。这很烦人。有谁知道这是一个错误还是我在配置中遗漏了某些内容?

顺便说一句,为了对 POJO 对象使用 Moxy 映射,POJO 需要有一个空参数构造函数。还有其他要求吗?


我遇到了同样的问题并找到了这篇文章:

  • http://jersey.576304.n2.nabble.com/Missing-MOXy-Log-Messages-In-Tomcat-td7580992.html http://jersey.576304.n2.nabble.com/Missing-MOXy-Log-Messages-In-Tomcat-td7580992.html

作者实现了ApplicationEventListener来记录Moxy抛出的异常。这是我的实现(需要在您的应用程序中注册):

public class ExceptionListener implements ApplicationEventListener {

    @Override
    public void onEvent(ApplicationEvent event) {

    }

    @Override
    public RequestEventListener onRequest(RequestEvent requestEvent) {
        return new ExceptionRequestEventListener();
    }

    public static class ExceptionRequestEventListener implements RequestEventListener{
        private final Logger logger;

        public ExceptionRequestEventListener(){
            logger = Logger.getLogger(getClass());
        }

        @Override
        public void onEvent(RequestEvent event) {
            switch (event.getType()){
                case ON_EXCEPTION:
                    Throwable t = event.getException();
                    logger.error("Found exception for requestType: "+event.getType(), t);
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jersey 2.0 和 Moxy 内部服务器错误但没有服务器日志 的相关文章

随机推荐