小编Lia*_*m C的帖子

如何禁用 Dropwizard 健康检查的日志记录

我有一个在 Dropwizard (0.9) 中开发的应用程序,我们内部基础设施的一部分会定期 ping 管理员健康检查 REST 端点以验证服务是否已启动。这增加了很多:

127.0.0.1 - - [26/Sep/2016:21:47:04 +0000] "GET /healthcheck HTTP/1.1" 200 - "-" "curl/7.43.0" 27
Run Code Online (Sandbox Code Playgroud)

到日志文件。调整我们的内部工具超出了范围,所以我想配置记录器以使这些条目静音。不幸的是,我无法识别生成这些消息的类。哪个类负责内置的 /healthcheck 端点,并将一个简单的:

logging:
    loggers:
        "com.class.that.is.responsible": ERROR
Run Code Online (Sandbox Code Playgroud)

yaml 配置中的条目会抑制它们吗?

java logging dropwizard

7
推荐指数
1
解决办法
946
查看次数

如何使用 HTTP DELETE 通过 JerseyClientBuilder 传递表单数据

我目前正在针对基于 DropWizard 的 REST API 应用程序编写单元测试。我正在测试的端点有两种添加和删除对象属性的方法。POST 调用创建属性,DELETE 调用可以删除它。我可以提交带有标识该属性的表单数据的 POST 请求。我在提交包含标识该属性的表单数据的 DELETE 请求时遇到问题。要提交 POST,我使用:

Client client = new JerseyClientBuilder(RULE.getEnvironment())
                                        .build(String.format("test client %d", _id));
_id++;

return client.target("http://localhost:5000/Object/12345/Property")
                     .request(MediaType.APPLICATION_JSON_TYPE)
                     .post(Entity.entity(form,MediaType.APPLICATION_FORM_URLENCODED_TYPE), Response.class);
Run Code Online (Sandbox Code Playgroud)

这按预期工作。但是,JerseyInitation.Builder 对象的 DELETE 相关方法似乎缺少传递定义表单参数的实体对象的方法。如果我尝试使用较低级别的 .method() 函数:

Client client = new JerseyClientBuilder(RULE.getEnvironment()).build(String.format("test client %d", _id));
_id++;

return client.target("http://localhost:5000/Object/12345/Property")
                     .request(MediaType.APPLICATION_JSON_TYPE)
                     .method("DELETE", 
                             Entity.entity(form,MediaType.APPLICATION_FORM_URLENCODED_TYPE), 
                             Response.class);
Run Code Online (Sandbox Code Playgroud)

我收到这个完全无益的异常:

java.lang.IllegalStateException: Entity must be null for http method DELETE.
Run Code Online (Sandbox Code Playgroud)

我对 HTTP 规范的理解(以及 stackoverflow 的共识:是否允许 HTTP DELETE 请求使用实体主体?)表明带有 DELETE 的消息主体完全符合标准,尽管某些实现任意决定阻止这一点。泽西岛似乎是这些有限的实现之一。解决这个问题的理想的最小努力的解决方法是什么?(假设 DropWizard 应用程序是不可变的,“只需重写 REST API 以不使用 DELETE 或使用不同的 REST URI …

java rest jersey

2
推荐指数
1
解决办法
2368
查看次数

标签 统计

java ×2

dropwizard ×1

jersey ×1

logging ×1

rest ×1