问题描述
在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下为空