Java Dropwizard:无法提供静态HTML

Java Dropwizard:无法提供静态HTML,java,html,static,dropwizard,serving,Java,Html,Static,Dropwizard,Serving,我目前正在根路径“/”的Dropwizard中为静态html页面提供服务。到目前为止,我只收到一个错误页面,上面写着“HTTP错误404访问/时出现问题。原因:找不到” 我在做这件事的过程中,以及在本教程中都遵循了,对代码做了一些修改,以使我的服务能够工作。我的.yml文件中的根路径是/profile/v1,以允许我的getAll服务工作(当我第一次启动时,由于将多个servlet映射到路径/*,我遇到了一个错误。.yml如下所示: server: type: simple applic

我目前正在根路径“/”的Dropwizard中为静态html页面提供服务。到目前为止,我只收到一个错误页面,上面写着“HTTP错误404访问/时出现问题。原因:找不到”

我在做这件事的过程中,以及在本教程中都遵循了,对代码做了一些修改,以使我的服务能够工作。我的.yml文件中的根路径是
/profile/v1
,以允许我的getAll服务工作(当我第一次启动时,由于将
多个servlet映射到路径/*
,我遇到了一个错误。.yml如下所示:

server:
  type: simple
  applicationContextPath: /
  rootPath: /profile/v1
此外,我在主应用程序类中的初始化是:

@Override
public void initialize(final Bootstrap<AutomationConfigServiceConfiguration> bootstrap) {
    bootstrap.addBundle(new AssetsBundle("/../resources", "/", "index.html"));
}
其中
/resources
是我保存静态资产的目录,位于
java
目录之外

到目前为止,我已经能够让我的服务在这个设置中正常工作。例如,当我转到localhost:8080/profile/v1/name/getAll时,我能够从数据库中检索所有名称,如果我转到localhost:8080/profile/v1/titles/getAll,我从数据库中获取所有标题。如果我使用localhost:8080,带或不带“/”,我只是得到一个404页面,说它找不到“/”。理论上,这应该很简单,所以我不确定我还应该做什么

编辑:

当我转到/profile/v1时,我得到以下信息:

{
code: 404,
message: "HTTP 404 Not Found",
}

我应该提到,我不希望我的html在这里提供;我希望它在根目录下提供,因为我的所有服务都使用路径/profile/v1。这是为了帮助设置DNS而请求的。

在对代码进行了几次修改后,使其处于工作状态

  • AssetBundle路径是从project resources文件夹计算出来的。因此,请添加相对于该文件夹的路径。此处
    assets
    目录位于
    ${project Root}/src/main/resources
    目录中

    bootstrap.addBundle(new AssetsBundle("/assets/", "/"));
    
  • 删除显式Jersey注册表项。我相信这是从配置继承的

    environment.jersey().setUrlPattern("/*"); /*this line should be removed*/
    
  • 您将需要包含到项目的依赖项中


    仅供参考,刚刚创建了一个带有静态资产的。对代码进行了几次修改后,使其处于工作状态

  • AssetBundle路径是从project resources文件夹计算出来的。因此,请添加相对于该文件夹的路径。此处
    assets
    目录位于
    ${project Root}/src/main/resources
    目录中

    bootstrap.addBundle(new AssetsBundle("/assets/", "/"));
    
  • 删除显式Jersey注册表项。我相信这是从配置继承的

    environment.jersey().setUrlPattern("/*"); /*this line should be removed*/
    
  • 您将需要包含到项目的依赖项中


    作为参考,刚刚创建了一个带有静态资产的。据我所知,您的静态页面应该可以从
    localhost:8080/profile/v1
    获得。这样做会带来404 json响应。我将编辑问题以包含此内容。据我所知,您的静态页面应该可以从
    localhost:8080/profile/v1
    获得这会带来404JSON响应。我将编辑这个问题以包含这个。