dremio 自定义静态资源的处理

有些时候我们希望自定义一些dremio的页面,默认dremio 对于静态资源有一些约定

参考定义

  • DremioServer fallbackServletHolder
if (config.serveUI) {
  final String basePath = "rest/dremio_static/";
  final String markerPath = String.format("META-INF/%s.properties", uiType);

  final ServletHolder fallbackServletHolder =
      new ServletHolder("fallback-servlet", registry.lookup(DremioServlet.class));
  addStaticPath(fallbackServletHolder, basePath, markerPath);
  servletContextHandler.addServlet(fallbackServletHolder, "/*");
}
  • DremioServlet 静态资源处理

具体使用了DefaultServlet

public void service(ServletRequest req, ServletResponse res)
    throws ServletException, IOException {
  if (!(req instanceof HttpServletRequest)) {
    indexServlet.service(req, res);
  }

  HttpServletRequest httpReq = (HttpServletRequest) req;
  String requestUri = httpReq.getRequestURI();

  if (requestUri.startsWith("/static")) {
    staticResources.service(httpReq, res);
    return;
  }

玩法

我们可以将自己开发的静态资源放到dremio的rest/dremio_static/static/ 目录下,这样就可以直接访问了,访问路径http://host:port/static/<static page name >

  • 参考快速打包命令

可以直接基于jar uf 命令,比如开发了自己的静态页面dalong.html 打包命令如下

jar uf dremio-dac-ui-<version>.jar rest/dremio_static/static/dalong.html

说明

以上是一个简单说明,基于此我们可以进行灵活的不用源码编译的模式进行dremio静态页面自定义了

参考资料

dac/backend/src/main/java/com/dremio/dac/server/DremioServlet.java

posted on 2025-09-16 08:00  荣锋亮  阅读(12)  评论(0)    收藏  举报

导航