在同一个Dropwizard 0.8.5应用程序中映射静态和动态视图(和REST端点)

时间:2015-11-13 20:01:51

标签: java dropwizard

我是DW的新手(使用0.8.5),我正在尝试实现一个小型DW应用程序,既可以充当Web应用程序(提供静态和动态页面的混合),也可以为API公开一些REST端点客户端。

目前我的应用程序是从根上下文提供的(本地http://localhost:8080和开发人员http://dev.myapp.example.com)。我试图弄清楚如何制作一个静态主页(index.html),映射到根上下文(" /"),以及"联系我们"映射到/ contact的样式静态页面(contact.html)。

这是我想要的网址策略:

http://localhost:8080/         --> index.html (my static homepage)
http://localhost:8080/contact  --> contact.html (static contact page)
http://localhost:8080/app/*    --> dynamic web pages, using DW Views & Freemarker
http://localhost:8080/api/*    --> REST endpoints under here

我发现this blog让我感到困惑,因为在0.8.5中似乎没有明确的方法。有人可以解释一下这项工作所需的步骤吗?最好是代码示例还是GitHub要点?我认为这会对很多人有所帮助。

听起来我需要添加AssetsBundle,但我无法告诉我需要如何完全配置它或将静态HTML文件放在我的应用程序中。想法?

到目前为止我最好的尝试:

  1. bootstrap.addBundle(new AssetBundle())
  2. 中添加initialize()
  3. src/main/resources/assets/下方,所有静态联系人(index.htmlcontact.htm等)
  4. 但我正在努力解决的问题是将生成在src/main/resources/assets中的静态HTML文件映射到我想要的网址,特别是以这样的方式,这样它们不会导致与动态视图/页面冲突,也不会REST资源/端点。想法?

1 个答案:

答案 0 :(得分:0)

似乎AssetBundleConfigurableAssetBundle 不是进入DW>的方式0.8.4。

相反,只需像使用动态视图一样使用Dropwizard-Views bundle,只需将HTML文件重命名为FTL或胡须文件(例如,index.ftl而不是index.html等。 )。