nl_tokens: 初始化文件池，即使初始化失败 也继续执行
pl_tokens: private void initFilePool ( ) { String home = config . get ( "pool-home" ) . toString ( ) ; try { home = Disks . normalize ( home ) ; if ( home == null ) home = config . get ( "pool-home" ) . toString ( ) ; long <mask> = config . containsKey ( "pool-max" ) ? ( ( Number ) config . get ( "pool-max" ) ) . longValue ( ) : 2000 ; if ( home . contains ( "${app.home}" ) ) { try { // 这里引用了Mvcs类, 不太舒服,但应该还是有益处的 home = home . replace ( "${app.home}" , Mvcs . getServletContext ( ) . getRealPath ( "/" ) ) ; } catch ( Throwable e ) { } } try { pool = NutFilePool . getOrCreatePool ( home , max ) ; } catch ( Exception e ) { // 看看是不是Mvc环境,尝试在WebContent下创建 if ( ! home . startsWith ( "~/" ) || Mvcs . getServletContext ( ) == null ) throw e ; try { String tmp = Mvcs . getServletContext ( ) . getRealPath ( "/" ) + home . substring ( 2 ) ; pool = NutFilePool . getOrCreatePool ( tmp , max ) ; log . info ( "had created filepool under webapp root path" ) ; } catch ( Exception e1 ) { throw e ; // 抛出原本的异常好了,哎... } } pool = new SynchronizedFilePool ( pool ) ; } catch ( Throwable e ) { if ( log . isWarnEnabled ( ) ) log . warnf ( "NutDao FilePool create fail!! Blob and Clob Support is DISABLE!! Home=" + home , e ) ; } isInit = true ; }