我正在为EJB服务开发一个REST-facade,这意味着它调用EJB,将结果转换为REST调用者将理解的表示,然后返回它(作为json或xml)。所有这些都非常出色。但是EJB服务抛出了各种异常,例如,当没有找到结果或其他一些不同的情况下。因为我不希望那些传播到REST调用者,所以我实现了一个ExceptionMapper:
public class EjbExceptionMapper implements ExceptionMapper<EJBException> {
private static final Logger logger = LoggerFactory.getLogger(EjbExceptionMapper.class);
@Override
public Response toResponse(final EJBException exception) {
ResponseBuilder result = Response.status(Status.BAD_REQUEST);
logger.debug("Bad request:", exception);
if (exception.getCause() != null) {
final Throwable cause = exception.getCause();
if (cause instanceof NoDeliveryFoundException) {
logger.debug("Found NoDeliveryFoundException:", cause);
result = Response.status(Status.NO_CONTENT).entity(cause.getMessage());
}
}
return result.build();
}
}
我的EJB服务中的所有异常都以javax的形式出现。ejb。EJBException
,此映射程序可以很好地捕获它,原因是应用程序的不同自定义异常。计划是根据EJBException原因的类型返回不同的响应。用于调试的记录器调用都是在我得到NoDeliveryFoundException作为原因的情况下执行的,因此我知道它已执行(映射器已正确注册并用于映射),但客户端从未看到响应。
在基础服务中导致EJBException的每个调用(以及使用此ExceptionMapper)都不会导致任何响应,就像toResponse()方法返回null而不是自定义生成的响应一样。
我甚至在返回响应之前记录了它,它存在并包含了我所期望的内容,所以我肯定它是由toReport-method返回的。但是,我的委托人仍然没有收到任何回应。
所以现在我被难住了,因为没有任何搜索能够找到描述类似问题的人,所以我求助于你,亲爱的苏
您的toContent
-方法包含一些冲突的逻辑。
响应。状态(状态。无内容)。实体(cause.getMessage())
在这里,您分配了HTTP状态代码
204 No Content
,但您也添加了响应。您不能将状态设置为204 No Content
并同时返回响应主体。
此外,如果
Exc0019#get原因()
为空,或者如果它不是NoDeliveryFoundExc0019
的实例,则响应体为空。
这可能是你的问题的原因吗?
我正在创建,比如说,15个Callable任务,并提交它们: 然后我收集15个MyResult对象: 问题是:我没有从get()方法获得所有15个MyResult对象,而是有时获得不到15个对象。有时12有时10有时甚至更少,有时全部15。 我的印象是,方法是一个阻塞调用,将等待所有15个线程返回各自的结果,但看起来我错过了其中的一些线程并继续前进。我做错了什么?我是否未正确收集结果/等待结果?当
getAllTransactions()调用运行时没有异常,但不返回结果。另一方面,getMyTransactions()返回select查询结果。 在viewModel: 在活动中:
我在过去使用过JSoup并能够将XPath转换为选择器,但是在一个已经改变的站点上,我无法获得这个表的结果。 Firefox为表 两个都不起作用。即使在Try JSoup链接 第一个第n个子表本身返回NULL。 你知道这个页面有什么特别之处吗? 我将用户代理字符串设置为
问题内容: 我正在通过ElasticSearch NEST C#客户端运行一个简单的查询。通过http运行相同的查询时收到结果,但是从客户端返回的文档数量为零。 这就是我填充数据集的方式: 此POST请求返回JSON结果: 这是我没有返回任何代码的代码。 我想念什么?提前致谢 .. 问题答案: NEST尝试猜测类型和索引名称,在您的情况下,它将使用/ blog / blogentries 因为您告
问题内容: 我正在使用Newtonsoft的Json.Net从以下json中选择节点: 以下C#代码段 产量: 现在,这很酷,我想做的是按客户端代码过滤,我认为 可以,但是我显然对语法不够了解。这将返回一个空列表: 并且单个令牌选择器返回null: 我在https://jsonpath.curiousconcept.com/上尝试了几种不同的配置,看来我的查询语法确实坏了。 使用Flow Comm
我对Firebase/Firestore/Cloud函数相当陌生,一直在尝试一个小项目,在这个项目中,客户端应用程序调用Firebase Cloud函数来生成一些随机键(随机数),将它们添加到Firestore,成功编写后,将这些键返回到客户端应用程序。有点像随机数发生器。 客户端正确调用该函数(根据Firebase控制台),确实生成密钥,检查它们是否存在于Fi还原中,如果不添加它们。所有的工作直