- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我看到一个奇怪的问题。我有两个网络应用程序。一个用于我们使用 Jersey 公开的其余 Web 服务。另一个具有 JSF 前端实现,它调用上面的 web 服务来获取详细信息。我们使用 Tomcat 作为容器。
我面临的问题是当我调用 rest web 服务时,我会像这样抛出 WebApplicationException
catch (CustomExceptions e) {
ResponseBuilder response = new ResponseBuilderImpl();
response.status(500);
response.entity(e.getStackTrace());
throw new WebApplicationException(e, response.build());
}
另一方面,在 FE webapps 上,我执行以下操作:
try {
r.get(MyClass.class);
return "SUCCESS";
} catch (WebApplicationException wae) {
return "FAILURE";
} catch (UniformInterfaceException wae) {
return "FAILURE";
}
在 catch block 中,我期待 WebApplicationException,但它抛出了奇怪的 UniformInterfaceException。此外,如果它抛出 UniformInterfaceException,它也不会维护堆栈跟踪。甚至我从休息电话传入的响应也丢失了。有人可以帮我如何从其余调用中获取原始堆栈跟踪吗?
提前致谢。
最佳答案
如 user guide 中所指定和 api documentation , UniformInterfaceException 是您尝试按类型检索特定实体但收到非 200 系列响应时的预期结果。 WebApplicationException 是一个方便的异常,供您在服务器端使用以在异常中嵌入自定义响应。
没有什么是“丢失”的。请记住,您是在此处发出 HTTP 请求。如果您想自己检查状态码和响应,请使用
ClientResponse response = r.get(ClientResponse.class);
if (response.getStatus() == <expected status code>) [
response.getEntity(MyClass.class);
// do happy path stuff
} else {
// bad stuff here
}
或者,假设一切顺利,只检查异常响应:
try {
r.get(MyClass.class);
} catch (UniformInterfaceException e) {
ClientResponse response = e.getResponse();
// do whatever with the raw response
}
关于java - 从一个 webapp 抛出 WebapplicationException 并在另一个 webapp 上获取 UniformInterfaceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6921871/
我想捕获所有类型的 Throwable以便在发生异常时客户端不会暴露于我们的内部堆栈跟踪。 我正在使用ExceptionMapper如下: @Provider public class Mappabl
我想知道在映射 WebApplicationExceptions 时,Javax-RS/Jersey ExceptionMapper 类的正确用途是什么 我喜欢以下简单的三状态范例: HTTP 200
在 REST 服务中向客户端返回响应的所有可能性中,我看到了两种看起来等效的可能性:抛出 WebApplicationException(可能使用Response 实例)或返回 Response 实例
我有一个使用 Jersey 和 MOXy 的 JAX-RS 服务。我有一个返回类型 Memo 的 JSON 或 XML(取决于 Accept: header )表示的处理程序,但如果找不到该项目,它应
(这是对原始问题的编辑,以明确该问题不是重复的 - 标记为重复的问题涉及在响应中返回自定义错误消息,而不是官方错误代码的自定义原因短语)。 我正在尝试为 Restful 服务中的给定 Http 错误代
使用 jersey,我抛出一个带有 503 的 WebApplicationException,表明我的服务不可用(因为某些下游服务不可用)。 发生这种情况时,我会得到如下所示的日志记录,其中包含巨大
我正在搜索使用 JSON 和 RESTful 示例时发生的这个问题,但我找不到任何东西。这是我的代码: @Path("students") public class StudentResource {
我创建了实现 implements ExceptionMapper 的类并通过 environment.addProvider(new WebApplicationExceptionMapper())
我将一个 bean 注入(inject)到我的 REST web 服务中,然后从我的 bean 中调用一个方法,在该方法中抛出以下异常: throw new WebApplicationExcepti
我在从 StreamingOutput 实现中抛出 WebApplicationException 时遇到困难。我希望下面的代码返回 501,但curl 报告 curl: (52) Empty rep
在我们的(遗留)代码库中,我们以不同的方式抛出 WebApplicationExceptions。为了对我们处理异常的方式进行排序 - 我想为这些 WAE(和其他)创建一个 ExceptionMapp
我正在使用 JAX-RS API 开发一个 Web 服务,并将 Jersey 1.17 作为我的实现。 我希望客户可以在他们使用 Accept HTTP header 指定的 JSON 和 XML 之
我正在处理 Rest 服务,如果出现故障/错误,我会感到困惑,我应该使用 Response 还是 WebApplicationException? 下面是我使用 Response 返回 400 Bad
我试图了解这是一个功能还是一个错误...... :-) 对于下面的 Controller 和异常映射器,对于将失败并返回 401 响应的其余客户端,我希望为这两种情况调用异常处理程序。但是,不会为 W
JAX-RS Jersey 处理 WebApplicationException 嗨, 我尝试使用 MyWebApplicationExceptionMapper 处理 WebApplicationE
我有基于 Jersey 的 REST 资源类,其中包含多个资源,每个资源都提供一个 JSON 对象。我有一个简单的 HTML+Javascipt 界面,其中使用 jquery ajax 调用获取来自每
在我的应用程序中,我为异常情况抛出 WebApplicationExceptions,这样我就可以用我的 500 传回不错的消息。我遇到的问题是我有一个用于 hibernate 事务的 servlet
我试图用我的javax.ws.rs.ext.ExceptionMapper类捕获WebApplicationException,但我得到了一个奇怪的行为。 这是我简单的休息方法: @GET @Path
public class NotAuthorizedException extends WebApplicationException { public NotAuthorizedExcept
本文整理了Java中org.rembx.jeeshop.rest.WebApplicationException.getResponse()方法的一些代码示例,展示了WebApplicationExc
我是一名优秀的程序员,十分优秀!