java - Assets 目录内的 Dropwizard 服务目录

标签 java angularjs rest assets dropwizard

我有一个 Dropwizard/AngularJS 网站。我的 Assets 由根目录上的 AssetsBundle 提供:

public void initialize(Bootstrap<WebsiteConfiguration> bootstrap) {
    bootstrap.addBundle(new AssetsBundle("/assets/", "/", "index.html"));
    ...
}

我想在/services 上提供我的 REST 端点:

public void run(WebsiteConfiguration configuration, Environment environment) throws Exception {
    environment.jersey().setUrlPattern("/service");
    ...
}

根据我在其他地方看到的文档和答案,这似乎应该可行。然而,我刚刚尝试了一下,/service 上的所有内容都返回 404。当我通过调试器深入研究应用程序时,似乎是因为请求是通过 AssetServlet 而不是通过 Jersey 进行的。

我错过了什么吗?有没有一种好方法可以在根目录上为我的前端提供服务,并在子路径上提供 REST 服务?

最佳答案

前段时间我也被这个问题困扰过。对我有帮助的是将这些行添加到 app.yml 配置文件中:

server:
  type: simple
  rootPath: '/rest/*'
  applicationContextPath: /

关于java - Assets 目录内的 Dropwizard 服务目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31148681/

相关文章:

angularjs - ng-repeat 效率和工作

node.js - Node 中的 API 请求返回错误

java - 在 REST Web Controller 中添加 POST/PUT/PATCH 操作的链接

javascript - Angular 动画类中 Greensock JavaScript 的非平滑补间

java - 未知 SMTP 主机

javascript - 如何为列出的选项卡元素编写 Protractor 测试来检查它是否处于事件状态?

rest - 使用 Apache Camel 的微服务

javascript - AngularJS - 使用 REST API 调用加载图像

java - 当服务器抛出 IllegalArgrumentException 等应用程序异常时,预期响应是什么?

java - Azure + SpringBoot 'com/fasterxml/jackson/core/JsonFactory'