我正在使用JAX-RS,并且在发生错误的情况下,我为JSOn错误代码制作了两个自定义ExceptionMapper:
package Exception;
import Facade.ErrorMessage;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
@Provider
//dette fungere ligesom et hierki, så først, kommer de laveste i hierkiet, og denne bliver kaldt, hvis der ikke er andre exceptions, der er fundet inden
public class GenericExceptionMapper implements ExceptionMapper<Throwable> {
@Override
public Response toResponse(Throwable exception) {
ErrorMessage errorMessage = new ErrorMessage(exception.getMessage(),
500,
"This message has been displayed, because the data was inavalid, please use another parameter as data");
return Response.status(Status.NOT_FOUND).entity(errorMessage).build();
}
}
在我的applicationCofing中,出现错误cannot find symbol
对于我的两个异常映射器。
private void addRestResourceClasses(Set<Class<?>> resources) {
resources.add(Exception.DataNotFoundExceptionMapper.class); // cannot find symbol for DataNotFoundExceptionMapper.class
resources.add(Exception.GenericExceptionMapper.class); // cannot find symbol
resources.add(Rest.AddressResource.class);
resources.add(Rest.CityinfoResource.class);
resources.add(Rest.HobbyResource.class);
resources.add(Rest.PersonResource.class);
resources.add(Rest.PhoneResource.class);
}
}
我不应该在我的剩余配置中声明它们,还是应该解决这个问题?
编辑:当我将映射器从我的异常包移到我的Rest包中时,问题停止了,但是我想将它们放在单独的文件夹中,以获得更好的结构。