branaway / Japid

A Java-based statically-typed fast template engine that can be used in any Java code. It has special adapter for use with the Play! Framework.
113 stars 18 forks source link

使用play 1.2.5.3/1.2.7,DEV模式下在LInux(CentOS 6.3)中不能增量编译模板文件,每次都全量编译模板。 #65

Open tietang opened 10 years ago

tietang commented 10 years ago

如题

branaway commented 10 years ago

有没有一个样板工程我可以重现这个问题的? 有没有试过其他操作系统? 我手边没有CentOS。 我在苹果上。 是最近出现的这个问题还是一直有这个问题?

2013/12/19 王铁堂 notifications@github.com

如题

— Reply to this email directly or view it on GitHubhttps://github.com/branaway/Japid/issues/65 .

branaway commented 10 years ago

还有你用的Japid 版本号是多少?

在 2013年12月19日 下午7:23,Bing Ran bing.ran@gmail.com写道:

有没有一个样板工程我可以重现这个问题的? 有没有试过其他操作系统? 我手边没有CentOS。 我在苹果上。 是最近出现的这个问题还是一直有这个问题?

2013/12/19 王铁堂 notifications@github.com

如题

— Reply to this email directly or view it on GitHubhttps://github.com/branaway/Japid/issues/65 .

tietang commented 10 years ago

以前是一直在windows7,没有出现过该问题,最近通过SFTP自动部署到CentOS 6.3远程调试发现每次刷新页面很慢,监控后台后发现每次都要重新编译所有模板,但在windows7下只是修改哪个文件就编译哪个文件,我试了japid0.9.37和0.9.31都有这个问题,但我怀疑是playframework的bug

branaway commented 10 years ago

部署到 CentOS 后用的是 DEV mode?能不能在 Global 里面打开最高级的log: JapidFlags.setLogLevelDebug() 然后发给我一些 log?

在 2013年12月20日 下午1:12,王铁堂 notifications@github.com写道:

以前是一直在windows7,没有出现过该问题,最近通过SFTP自动部署到CentOS 6.3远程调试发现每次刷新页面很慢,监控后台后发现每次都要重新编译模板,但在windows7下确实修改哪个文件就编译哪个文件,我试了japid0.9.37和0.9.31都有这个问题,但我怀疑是playframework的bug

— Reply to this email directly or view it on GitHubhttps://github.com/branaway/Japid/issues/65#issuecomment-30989347 .

tietang commented 10 years ago

[Japid] classloader state not changed. Use cached auto-routes. [Japid] Processing 74 templates in directory tree: /home/w/po/sprout/app [Japid] Transforming template: /home/w/po/sprout/app/japidviews/_tags/HomeNav.html to: HomeNav.java ...所有模板的 [Japid] Transforming template: /home/w/po/sprout/app/japidviews/Application/Login1.html to: Login1.java [Japid] [debug] rebuilding auto paths took(/ms): .2 [Japid] [debug] rebuilding auto paths took(/ms): .1 [Japid] [debug] JapidPlugin: clean japidCache 06-09 13:35:53 [play-thread-1][WARN ][play.Logger.warn(Logger.java:344)]: Messages file missing for locale en 06-09 13:35:53 [play-thread-1][INFO ][fengfei.web.app.init.SliceDBPlugin.onApplicationStart(SliceDBPlugin.java:40)]: reading xml config...cp:config.xml ...所有初始化插件执行部分日志 [Japid] set log level to debug 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: init follow service. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: read category. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: read license. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: Generate i18n javascript file finished. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: Sequence init. ...所有初始化插件执行部分日志 06-09 13:35:53 [play-thread-1][INFO ][controllers.Admin.log(Admin.java:50)]: 172.17.20.98: mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/31.0.1650.63 safari/537.36 {/last= class="active" } 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: Responsed. [Japid] classloader state not changed. Use cached auto-routes. ...共40行 [Japid] classloader state not changed. Use cached auto-routes. [Japid] classloader state not changed. Use cached auto-routes.

这是play1.2.5.3 官方版本,japid 0.9.37,已经执行过一遍编译,无任何编辑和修改,重新刷新页面后的日志

tietang commented 10 years ago

[Japid] classloader state not changed. Use cached auto-routes. 12-20 13:41:10 [play-thread-1][INFO ][controllers.Admin.log(Admin.java:50)]: 127.0.0.1: mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/31.0.1650.63 safari/537.36 12-20 13:41:10 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: Responsed.

同样的play1.2.5.3 官方版本,japid 0.9.37,和同样的操作,在windows 7 下面的操作后的日志。

tietang commented 10 years ago

CentOS 6.3下启动时的日志:

CompilerOracle: exclude jregex/Pretokenizer.next Listening for transport dt_socket at address: 8000 06-09 13:33:56 [main][INFO ][play.Logger.info(Logger.java:289)]: Starting /home/ w/po/sprout 06-09 13:33:56 [main][INFO ][play.Logger.info(Logger.java:289)]: Module fir is a vailable (/home/w/po/sprout/../fir) 06-09 13:33:56 [main][INFO ][play.Logger.info(Logger.java:289)]: Module japid is available (/home/w/opt/local/play-1.2.7/modules/japid-0.9.37) 06-09 13:33:56 [main][INFO ][play.Logger.info(Logger.java:289)]: Module router i s available (/home/w/opt/local/play-1.2.7/modules/router-1.3) 06-09 13:33:56 [main][INFO ][play.Logger.info(Logger.java:289)]: Module .modules Order.conf is ignored, name starts with a dot 06-09 13:34:00 [main][INFO ][play.Logger.info(Logger.java:289)]: JapidPlugin.onload(). 06-09 13:34:00 [main][INFO ][play.Logger.info(Logger.java:289)]: [Japid] version 0.9.37 in DEV mode. Detecting changes... [Japid] Processing 74 templates in directory tree: /home/w/po/sprout/app [Japid] Transforming template: /home/w/po/sprout/app/japidviews/_tags/HomeNav.html to: HomeNav.java ...所有模板的 [Japid] Transforming template: /home/w/po/sprout/app/japidviews/Application/Login1.html to: Login1.java 06-09 13:34:04 [main][WARN ][play.Logger.warn(Logger.java:344)]: You're running Play! in DEV mode 06-09 13:34:05 [main][INFO ][play.Logger.info(Logger.java:289)]: Listening for HTTP on port 8022 (Waiting a first request to start) ...

tietang commented 10 years ago

Window7下面的启动日志:

CompilerOracle: exclude jregex/Pretokenizer.next Listening for transport dt_socket at address: 8000 12-20 13:46:39 [main][INFO ][play.Logger.info(Logger.java:289)]: Starting E:\xx\hh\gh\test_sp\sprout 12-20 13:46:39 [main][INFO ][play.Logger.info(Logger.java:289)]: Module .modulesOrder.conf is ignored, name starts with a dot 12-20 13:46:39 [main][INFO ][play.Logger.info(Logger.java:289)]: Module fir is available (E:\xx\hh\ghvv) 12-20 13:46:39 [main][INFO ][play.Logger.info(Logger.java:289)]: Module japid is available (D:\java\play-1.2.7\modules\japid-0.9.37) 12-20 13:46:39 [main][INFO ][play.Logger.info(Logger.java:289)]: Module router is available (D:\java\play-1.2.7\modules\router-1.3) 12-20 13:46:45 [main][INFO ][play.Logger.info(Logger.java:289)]: JapidPlugin.onload(). 12-20 13:46:45 [main][INFO ][play.Logger.info(Logger.java:289)]: [Japid] play in DEV mode. Detecting changes... 12-20 13:46:45 [main][WARN ][play.Logger.warn(Logger.java:344)]: You're running Play! in DEV mode 12-20 13:46:45 [main][INFO ][play.Logger.info(Logger.java:289)]: Listening for HTTP on port 8022 (Waiting a first request to start) ...

branaway commented 10 years ago

确认一下 prod 模式没问题吧?

发自我的 iPad

在 2013年12月20日,下午1:39,王铁堂 notifications@github.com 写道:

[Japid] classloader state not changed. Use cached auto-routes. [Japid] Processing 74 templates in directory tree: /home/w/po/sprout/app [Japid] Transforming template: /home/w/po/sprout/app/japidviews/_tags/HomeNav.html to: HomeNav.java ...所有模板的 [Japid] Transforming template: /home/w/po/sprout/app/japidviews/Application/Login1.html to: Login1.java [Japid] [debug] rebuilding auto paths took(/ms): .2 [Japid] [debug] rebuilding auto paths took(/ms): .1 [Japid] [debug] JapidPlugin: clean japidCache 06-09 13:35:53 [play-thread-1][WARN ][play.Logger.warn(Logger.java:344)]: Messages file missing for locale en 06-09 13:35:53 [play-thread-1][INFO ][fengfei.web.app.init.SliceDBPlugin.onApplicationStart(SliceDBPlugin.java:40)]: reading xml config...cp:config.xml ...所有初始化插件执行部分日志 [Japid] set log level to debug 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: init follow service. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: read category. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: read license. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: Generate i18n javascript file finished. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: Sequence init. ...所有初始化插件执行部分日志 06-09 13:35:53 [play-thread-1][INFO ][controllers.Admin.log(Admin.java:50)]: 172.17.20.98: mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/31.0.1650.63 safari/537.36 {/last= class="active" } 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: Responsed. [Japid] classloader state not changed. Use cached auto-routes. ...共40行 [Japid] classloader state not changed. Use cached auto-routes. [Japid] classloader state not changed. Use cached auto-routes.

这是play1.2.5.3 官方版本,japid 0.9.37,已经执行过一遍编译,无任何编辑和修改,重新刷新页面后的日志

— Reply to this email directly or view it on GitHub.

branaway commented 10 years ago

能否看看同一个模版文件对应的java文件的时间戳?例如 login.html 对应的 login.java。java文件的时间戳应该晚于html 否则会被重新生成

发自我的 iPad

在 2013年12月20日,下午1:39,王铁堂 notifications@github.com 写道:

[Japid] classloader state not changed. Use cached auto-routes. [Japid] Processing 74 templates in directory tree: /home/w/po/sprout/app [Japid] Transforming template: /home/w/po/sprout/app/japidviews/_tags/HomeNav.html to: HomeNav.java ...所有模板的 [Japid] Transforming template: /home/w/po/sprout/app/japidviews/Application/Login1.html to: Login1.java [Japid] [debug] rebuilding auto paths took(/ms): .2 [Japid] [debug] rebuilding auto paths took(/ms): .1 [Japid] [debug] JapidPlugin: clean japidCache 06-09 13:35:53 [play-thread-1][WARN ][play.Logger.warn(Logger.java:344)]: Messages file missing for locale en 06-09 13:35:53 [play-thread-1][INFO ][fengfei.web.app.init.SliceDBPlugin.onApplicationStart(SliceDBPlugin.java:40)]: reading xml config...cp:config.xml ...所有初始化插件执行部分日志 [Japid] set log level to debug 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: init follow service. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: read category. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: read license. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: Generate i18n javascript file finished. 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: Sequence init. ...所有初始化插件执行部分日志 06-09 13:35:53 [play-thread-1][INFO ][controllers.Admin.log(Admin.java:50)]: 172.17.20.98: mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/31.0.1650.63 safari/537.36 {/last= class="active" } 06-09 13:35:53 [play-thread-1][INFO ][play.Logger.info(Logger.java:289)]: Responsed. [Japid] classloader state not changed. Use cached auto-routes. ...共40行 [Japid] classloader state not changed. Use cached auto-routes. [Japid] classloader state not changed. Use cached auto-routes.

这是play1.2.5.3 官方版本,japid 0.9.37,已经执行过一遍编译,无任何编辑和修改,重新刷新页面后的日志

— Reply to this email directly or view it on GitHub.

tietang commented 10 years ago

CentOS 6.3中,prod模式中,只在启动时编译一次,以后都正常.

tietang commented 10 years ago

查看了,是时间戳的问题,服务器时间比本机时间晚十几分钟造成的:

Access: 2013-12-20 15:51:16.741420204 +0800 Modify: 2013-12-20 15:37:54.004000003 +0800 Change: 2013-12-20 15:52:28.383294225 +0800

谢谢!

tietang commented 10 years ago

通过这个问题的引入,是否可以在比较login.html 对应的 login.java时,如果需要编译模板的同时,touch一下login.html ,这样就使login.html和 login.java的时间戳一直,从而避免这种远程调试时时间不同步的问题?

tietang commented 10 years ago

或者缓存login.html 的最后修改时间,如果最后两次不一样再编译模板?

branaway commented 10 years ago

很高兴问题解决了 我想想有无妥当的办法

发自我的 iPad

在 2013年12月20日,下午4:15,王铁堂 notifications@github.com 写道:

或者缓存login.html 的最后修改时间,如果最后两次不一样再编译模板?

— Reply to this email directly or view it on GitHub.