使用 OData2 中的响应发送自定义异常详细信息

Sending custom Exception Details with the Response in OData2

我在一个 Web 服务项目中工作,其中 olingo、odata2 与 Java 一起使用。我正在使用扩展 ODataJPAServiceFactory 的工厂 class。我想发送自定义状态代码和消息,以防模块中发生任何异常。但找不到如何在响应中发送自定义异常详细信息。如果有人遇到同样的问题或对此主题有一些了解,请分享您的宝贵意见。

我正在使用 REST API

嗨,我终于找到了解决方案:

在 Olingo V2 中,可以覆盖 "getCallback" 方法以使用自己的 ODataErrorCallback 实现。 可以在此处找到文档:http://olingo.staging.apache.org/doc/odata2/tutorials/debug.html#error-callback 这里有一个示例:org.apache.olingo.odata2.ref.processor.ScenarioServiceFactory

在我们的用例中,您可以(作为简单示例)将下面列出的代码添加到您的代码中(或者作为示例 JPA 参考场景工厂 (org.apache.olingo.odata2.jpa.processor.ref.web.JPAReferenceServiceFactory))。

@Override
public <T extends ODataCallback> T getCallback(Class<T> callbackInterface) {
  if(callbackInterface.isAssignableFrom(ODataErrorCallback.class)) {
   return (T) new MySampleErrorCallback();
}
return super.getCallback(callbackInterface);
}

private class MySampleErrorCallback implements ODataErrorCallback {
@Override
public ODataResponse handleError(ODataErrorContext context) throws  ODataApplicationException {
  LOG.error("Error...");
  return EntityProvider.writeErrorDocument(context);
}

}