Java 未找到JaxRS异常映射程序

Java 未找到JaxRS异常映射程序,java,jersey,jax-rs,web.xml,Java,Jersey,Jax Rs,Web.xml,我有一个@Provider注释异常映射器,但Jersey没有加载或注册它 在myweb.xml中(精简): 运动衫 org.glassfish.jersey.servlet.ServletContainer jersey.config.server.provider.packages com.my.company; com.fasterxml.jackson.jaxrs.json; 1. 制图员: package com.my.company.some.package; @Provider

我有一个
@Provider
注释异常映射器,但Jersey没有加载或注册它

在my
web.xml
中(精简):


运动衫
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.my.company;
com.fasterxml.jackson.jaxrs.json;
1.
制图员:

package com.my.company.some.package;

@Provider
public class MyExceptionMapper implements ExceptionMapper<MyException> {
    @Override
    public Response toResponse(MyException exception) {
        return Response.status(Status.NOT_FOUND).build();
    }
}
package com.my.company.some.package;
@提供者
公共类MyExceptionMapper实现ExceptionMapper{
@凌驾
公共响应(MyException异常){
返回Response.status(status.NOT_FOUND).build();
}
}
我在
com.my.company.other.package
包中有
@Path
注释的API类,这些类被正确找到,我可以毫无问题地访问它们。找不到任何带注释的映射程序


如果我在mapper构造函数和/或
toResponse
方法中放入日志消息,则这些消息也不会显示。我不得不得出结论,泽西就是找不到或者决定不加载这些类。如何使其工作?

jersey中的provider packages属性不是递归的。它只扫描那些包,而不是以该名称开头的包。

我看不出您提供的包有任何问题。也许是你没有提供的东西。不知道会是什么。你能提供一个重现问题的小型github项目吗?递归行为实际上依赖于属性,默认情况下为true。我选中了,并且属性不在我的
web.xml
中,因此我假设它默认为true。这是因为子包中的
@Path
注释类加载正确。我只是想知道,您是否尝试显式添加包名?
package com.my.company.some.package;

@Provider
public class MyExceptionMapper implements ExceptionMapper<MyException> {
    @Override
    public Response toResponse(MyException exception) {
        return Response.status(Status.NOT_FOUND).build();
    }
}