我要说我太天真了,我选择了Tapestry做WEB前台,我幻想只要把Jetty的web程序的目录设置为开发的目录,只要重新编译java文件就能不重启Jetty达到调整web层的目的。
但是,这是多么可笑的错误啊。我居然没有想到classloader,因为classloader会一直保存着你的第一个版本,之后的改动是不能覆盖前面的,即便你自己写一个classloader也只能载入一个新版本和老版本并存,而Jetty和Tapestry仍然引用的是老版本的文件,这就意味着我必须要重启Jetty才能观看改动。说实话,我有一些后悔了,至少用Tomcat在部署上要简单许多。
最终我的解决办法是用 Groovestry,然后用 Groovy 来写WEB的后台。因为 Groovetry 提供的自动重编译功能,基本上做到了同JSP一样的开发便利。这中间当然并非如此一帆风顺的,我遇到了一个古怪的问题。在安装了 Groovetry 之后,我拷贝了sample文件过来,但是web查看了时候确提示了Groovy的类不完整什么来着。google了半天之后发现这个问题居然是Jrockit的问题,无奈之下换成官方原版的JDK就一切搞定了。
虽然原来的天真计划泡汤了,但是最终的结果是非常令人满意的,决定这个前端已经很优雅了。
但是,这是多么可笑的错误啊。我居然没有想到classloader,因为classloader会一直保存着你的第一个版本,之后的改动是不能覆盖前面的,即便你自己写一个classloader也只能载入一个新版本和老版本并存,而Jetty和Tapestry仍然引用的是老版本的文件,这就意味着我必须要重启Jetty才能观看改动。说实话,我有一些后悔了,至少用Tomcat在部署上要简单许多。
最终我的解决办法是用 Groovestry,然后用 Groovy 来写WEB的后台。因为 Groovetry 提供的自动重编译功能,基本上做到了同JSP一样的开发便利。这中间当然并非如此一帆风顺的,我遇到了一个古怪的问题。在安装了 Groovetry 之后,我拷贝了sample文件过来,但是web查看了时候确提示了Groovy的类不完整什么来着。google了半天之后发现这个问题居然是Jrockit的问题,无奈之下换成官方原版的JDK就一切搞定了。
虽然原来的天真计划泡汤了,但是最终的结果是非常令人满意的,决定这个前端已经很优雅了。