问题标签 [dropwizard-templates]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
386 浏览

java - Dropwizard 从 POST 方法更新视图

我正在尝试在注册新用户的 POST 方法中验证表单。如果出现错误(例如已使用的用户名),我希望从我的 GET 方法中检索到的视图使用错误进行更新。我正在使用 Dropwizard 视图和 Freemarker。到目前为止我的代码:

注册.ftl:

还有我的资源类:

我遇到了这个页面,它提供了一些指导,但我未能复制它,因为没有完全提供源并且它不使用 Dropwizard 的视图功能。我还考虑将参数添加到我的 GET 方法并从 POST 方法重定向,但这对我来说似乎有点矫枉过正?

任何帮助将不胜感激。

0 投票
0 回答
894 浏览

java - 在 Dropwizard Intellij 中找不到 Freemarker 模板

我正在尝试设置一个 freemarker 模板来显示 SQL 查询的结果。我遇到了 Intellij 报告找不到模板的问题:

当我的应用程序类中的主要方法设置如下时发生这种情况:

在此设置下,导航到返回地址数据库的 URL 会在我的浏览器中返回 404 错误,并且上述日志处于调试模式。

对在 Dropwizard 中使用 Freemarker 的额外研究使我在应用程序的 main 方法中设置了一个 Configuration 实例,以使用 setDirectoryForTemplateLoading 查找模板,指向路径,并使用 getTemplate 返回模板文件本身:

但是,转到 URL 会返回相同的错误。在这种情况下,唯一明显的区别是错误信息在服务器启动时打印在控制台顶部:

最后,它显示它是从资源文件夹中加载模板;但是,尝试运行我定义的 getter 方法稍后会在控制台中返回相同的错误。谁能给我一些见解?我认为这不是我的代码的问题,而是 .ftl 文件没有向 Intellij 注册。

编辑:这是我的视图包,在初始化下。:

0 投票
1 回答
2722 浏览

java - 如何在 Freemarker DropWizard 中使用按钮调用方法

我正在尝试使用 Freemarker 模板中的按钮调用删除方法。我认为这就像在我的资源类中定义该方法的路径一样简单,然后将表单的操作指向该路径;但是,当我按下按钮时没有任何反应。

这是按钮的代码:

理论上,这应该会激活向 SQL 服务器发送删除请求的方法。我用于此的原始方法是:

这使用 DAO 发送请求。我在 Postman 中对此进行了测试,并且可以正常工作。我以为我可以将按钮指向相同的路径来使用它,但这不起作用。因此,我尝试修改构造函数用于 ftl 模板的方法:

但这遇到了一个问题,即我无法将返回人员列表的 PersonView 应用于 deletePerson,这是一个 void 方法。有人对我如何做到这一点有任何见解吗?看起来应该很简单,但我无法弄清楚。

编辑:

除了关于提交按钮的 user7294900 答案之外,我还需要对删除方法进行更改。在研究这个问题时,我还发现 html 表单不能与 DELETE 或 PUT 方法一起使用;只有 POST 和 GET。考虑到这一点,我将资源方法更改为使用 @POST 注释:

我还对表单按钮进行了必要的提交更改:

0 投票
1 回答
945 浏览

java - Dropwizard 配置不适用于 Shaded jar

尝试运行带有 configuration.yaml 文件中属性的阴影 jar 时,我遇到了以下问题。(直接跑主类时不会发生)

运行命令:java -jar target/mlsdata-1.0.jar server configuration.yaml

错误:

根据我从各种来源了解到的情况,这可能是一个 Maven 包装问题。解决方案虽然没有帮助我。

这是我在 POM 中的构建设置。

`

`

下拉向导版本:

配置.yaml

0 投票
2 回答
3550 浏览

java - Freemarker:访问模板中没有getter的公共字段

我正在 Dropwizard 应用程序中设置视图,并遇到了 Freemarker 的一个奇怪问题。

按照此处的文档,我设置了一个非常简单的示例,如下所示

FooView.ftl

呈现时的预期输出ExampleFreemarkerView是显示Hello World.

实际发生的是 Freemarker 抛出一个异常,抱怨${foo.bar}- 特别bar是 - 是未定义的。

这似乎是因为bar是一个公共领域,没有吸气剂。当我向 中添加public String getBar() { return bar; }吸气剂时Foo,它可以工作。

我对这种情况感到有些惊讶 - 即 Freemarker 似乎需要 getter 并且不能与开箱即用的公共字段一起工作。我故意在我的模型对象上使用公共字段而不是 getter/setter,因此添加 getter 只是为了使 Freemarker 工作不是我会考虑的解决方案。

我搜索了很多并通读了 Freemarker 文档,但找不到任何方法在 Freemarker 中“打开”这种行为。可能吗?

只是为了感兴趣-我也尝试了上面的示例,完全相同,但是使用 Mustache 模板和公共字段可以正常工作(即{{foo.bar}}渲染Hello World没有问题)。这解决了眼前的问题,所以这个问题主要是出于好奇,或者我出于其他原因决定使用 Freemarker 而不是 Mustache。


根据评论进行编辑-我知道 Freemarker 这样做(坚持使用 getters 开箱即用)遵循 Java Beans 规范,但 Java 生态系统中的大多数库都支持公共领域 - Hibernate 和 Jackson 是突出的例子 - 在我个人看来它作为一个同样有效的标准,并且发现不支持它的库令人惊讶。

0 投票
1 回答
22 浏览

dropwizard - Maven、JAVA SE 和 Docker 的最低版本

我想知道使用 Dropwizard v1.3.20(2020 年 3 月 6 日的最新版本)构建微服务所需的 Maven 和 Java SE 的最低版本?

如果我也知道 Docker 的最低版本,那就太好了。

谢谢

0 投票
0 回答
37 浏览

linux - Dropwizard 不控制 archivedFileCount

我有以下配置,

我可以在提供的位置看到的日志文件是

仅为 21 个文件创建日志文件。

我没有从 logrotate.d 配置文件中看到任何相关信息。

还有什么方法可以控制这些日志?除了配置文件,文件数只有 21 而不是 25 的原因是什么?