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
浙公网安备 33010602011771号