This commit is contained in:
Redkale
2016-09-14 10:24:24 +08:00
parent 04b5b361ad
commit d35987612d
2 changed files with 56 additions and 54 deletions

View File

@@ -49,37 +49,30 @@ public class HttpPrepareServlet extends PrepareServlet<String, HttpContext, Http
watch.inject(s);
});
}
AnyValue resConfig = null;
if (config != null) {
AnyValue ssConfig = config.getAnyValue("servlets");
if (ssConfig != null) {
String resServlet = config.getValue("servlet", HttpResourceServlet.class.getName());
try {
this.resourceHttpServlet = (HttpServlet) Class.forName(resServlet).newInstance();
} catch (Exception e) {
logger.log(Level.WARNING, "init HttpResourceSerlvet(" + resServlet + ") error", e);
}
resConfig = ssConfig.getAnyValue("resource-servlet");
if ((resConfig instanceof DefaultAnyValue) && resConfig.getValue("webroot") == null) {
((DefaultAnyValue) resConfig).addValue("webroot", config.getValue("root"));
}
}
if (resConfig == null) resConfig = config.getAnyValue("resource-servlet"); //兼容
if (resConfig == null) {
DefaultAnyValue dresConfig = new DefaultAnyValue();
dresConfig.addValue("webroot", config.getValue("root"));
dresConfig.addValue("ranges", config.getValue("ranges"));
dresConfig.addValue("cache", config.getAnyValue("cache"));
AnyValue[] rewrites = config.getAnyValues("rewrite");
if (rewrites != null) {
for (AnyValue rewrite : rewrites) {
dresConfig.addValue("rewrite", rewrite);
}
}
resConfig = dresConfig;
}
AnyValue resConfig = config.getAnyValue("resource-servlet");
if ((resConfig instanceof DefaultAnyValue) && resConfig.getValue("webroot", "").isEmpty()) {
((DefaultAnyValue) resConfig).addValue("webroot", config.getValue("root"));
}
if (resConfig == null) { //主要用于嵌入式的HttpServer初始化
DefaultAnyValue dresConfig = new DefaultAnyValue();
dresConfig.addValue("webroot", config.getValue("root"));
dresConfig.addValue("ranges", config.getValue("ranges"));
dresConfig.addValue("cache", config.getAnyValue("cache"));
AnyValue[] rewrites = config.getAnyValues("rewrite");
if (rewrites != null) {
for (AnyValue rewrite : rewrites) {
dresConfig.addValue("rewrite", rewrite);
}
}
resConfig = dresConfig;
}
String resServlet = resConfig.getValue("servlet", HttpResourceServlet.class.getName());
try {
this.resourceHttpServlet = (HttpServlet) Class.forName(resServlet).newInstance();
} catch (Exception e) {
this.resourceHttpServlet = new HttpResourceServlet();
logger.log(Level.WARNING, "init HttpResourceSerlvet(" + resServlet + ") error", e);
}
if (this.resourceHttpServlet == null) this.resourceHttpServlet = new HttpResourceServlet();
this.resourceHttpServlet.init(context, resConfig);
}