我正在学习Jersey/JAX-RS,我需要一些关于ExceptionMapper的帮助。Jersey/JAX-RS ExceptionMapper MySQL
我有一个UserFacade类,AbstractFacade类和User类本身,都是非常标准的,主要是通过在Netbeans中创建一个带有数据库的新Web服务RestFUL项目生成的。我的问题是,我想现在开始捕捉错误,说“唯一约束违规”错误。我想我需要实现一个异常映射器...我已经在我的门面如下:
@Provider public class EntityNotFoundMapper implements ExceptionMapper { @Override public javax.ws.rs.core.Response toResponse(PersistenceException ex) { return Response.status(404).entity(ex.getMessage()).type("text/plain").build(); } }
这是我得到的错误,那不是我的自定义异常处理程序捕获。
WARNING: StandardWrapperValve[service.ApplicationConfig]: Servlet.service() for servlet service.ApplicationConfig threw exception com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'usernamegoeshere' for key 'username'
我觉得我很近,我并不想从上面的例子赶上MySQLIntegrityConstraintViolationException的唯一原因,是因为我只是想抓住每一个可能的错误FIRST(以确保其工作),那么当我看到语法正在工作后,我会缩小范围并具体化。
我在做什么错?
你知道我在哪里可以找到如何做你的答案的第2部分的例子吗? – Trihedron
查看编辑答案。 –
迄今为止,非常感谢您的帮助,我觉得我快到了。警告:已检测到以下警告:警告:[service.UserFacadeREST $ SqlExceptionMapper]的HK2服务通知失败,但有一个例外: MultiException堆栈1 of 2 java.lang.NoSuchMethodException:无法实例化service.UserFacadeREST $ SqlExceptionMapper类。不支持非静态成员类的实例化。' – Trihedron