Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
tietang opened this issue Dec 19, 2013 · 15 comments

Comments

@tietang
Copy link

tietang commented Dec 19, 2013

如题

@branaway
Copy link
Owner

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

2013/12/19 王铁堂 [email protected]

如题


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

@branaway
Copy link
Owner

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

在 2013年12月19日 下午7:23,Bing Ran [email protected]写道:

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

2013/12/19 王铁堂 [email protected]

如题


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

@tietang
Copy link
Author

tietang commented Dec 20, 2013

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

@branaway
Copy link
Owner

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

在 2013年12月20日 下午1:12,王铁堂 [email protected]写道:

以前是一直在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//issues/65#issuecomment-30989347
.

@tietang
Copy link
Author

tietang commented Dec 20, 2013

[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
Copy link
Author

tietang commented Dec 20, 2013

[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
Copy link
Author

tietang commented Dec 20, 2013

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
Copy link
Author

tietang commented Dec 20, 2013

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
Copy link
Owner

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

发自我的 iPad

在 2013年12月20日,下午1:39,王铁堂 [email protected] 写道:

[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
Copy link
Owner

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

发自我的 iPad

在 2013年12月20日,下午1:39,王铁堂 [email protected] 写道:

[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
Copy link
Author

tietang commented Dec 20, 2013

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

@tietang
Copy link
Author

tietang commented Dec 20, 2013

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

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
Copy link
Author

tietang commented Dec 20, 2013

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

@tietang
Copy link
Author

tietang commented Dec 20, 2013

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

@branaway
Copy link
Owner

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

发自我的 iPad

在 2013年12月20日,下午4:15,王铁堂 [email protected] 写道:

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


Reply to this email directly or view it on GitHub.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants