问题描述
在linux启动内置jetty的jfinal项目时(jar包方式运行),因设置模板baseTemplatePath为空异常了,异常代码位置

导致服务起来后访问出现503,在windows系统测试时不报错,在windows下debug显示参数baseTemplatePath为盘符(E:/),在linux下为/
服务启动类

服务启动类代码
public static void main(String[] args) throws URISyntaxException {
PropKit.use("setting.properties");//加载用户配置文件,获取值直接使用:PropKit.get(key值)
log.info("server.port="+PropKit.getInt("server.port"));
// JFinal.start("WebRoot", 80, "/", 5);// 需要web.xml
EnumSet<DispatcherType> all = EnumSet.of(DispatcherType.ASYNC, DispatcherType.ERROR,
DispatcherType.FORWARD,DispatcherType.INCLUDE, DispatcherType.REQUEST);
final Server server = new Server(PropKit.getInt("server.port", 8182));
try{
WebAppContext context = new WebAppContext("/","/");
FilterHolder filter = new FilterHolder(new JFinalFilter());
filter.setInitParameter("configClass", JFConfig.class.getName());
context.addFilter(filter, "/*", all);
server.setHandler(context);
server.start();
log.info("RealPath="+context.getServletContext().getRealPath("/"));
log.info("server start on port "+PropKit.getInt("server.port", 8182));
server.join();
}catch (Exception e){
log.warn("启动服务异常", e);
}
}
“在windows下debug显示参数baseTemplatePath为盘符(E:/),在linux下为/”
改为:
在windows下debug显示参数baseTemplatePath为盘符(E:),在linux下为空