我已经在Tomcat上部署了我的应用程序。在此之前,我的控制器类名称之一已更改。
之前
lk_Controller
后
LK控制器
但apache无法在ZK框架上读取该类(应用)。注意:受控类已打包在一个包中。
这是我的ZK文件:
<!-- Content ommited above -->
<window title="laporan Keuangan" width="auto" height="auto" border="" apply="controller.lap_keuangan.LKController">
<listbox id="listlk">
<listhead>
<listheader label="tanggal"/>
<listheader label="debit"/>
<listheader label="kredit"/>
<listheader label="total"/>
</listhead>
</listbox>
</window>
和Apache日志上的错误列表是:
Caused by: java.lang.ClassNotFoundException: controller.lk_Controller
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.zkoss.lang.Classes.forNameByThread(Classes.java:271)
at org.zkoss.zk.ui.impl.PageImpl.resolveClass(PageImpl.java:425)
at org.zkoss.zk.ui.metainfo.ComponentInfo.toComposer(ComponentInfo.java:405)
at org.zkoss.zk.ui.metainfo.ComponentInfo.toComposer(ComponentInfo.java:397)
at org.zkoss.zk.ui.metainfo.ComponentInfo.toComposers(ComponentInfo.java:365)
at org.zkoss.zk.ui.metainfo.ComponentInfo.resolveComposer(ComponentInfo.java:352)
... 52 more
我已经取消部署应用程序,然后再次运行。这浪费了我的时间来跟踪带有指定消息的错误日志。
最佳答案
在默认情况下,当您更改类名称时,
您必须重新启动服务器以更新类路径。
对于编辑zul,您不必重新启动服务器。
正如我从您的问题中得到的,您提到您的zul已修改,
但是在给定的结果中,它不在修改的zul下运行。
有可能,
1.资源没有按预期更新,如果您在Eclipse WTP下运行,则有时WTP存在无法正确/缓慢清理/重新部署资源的错误。
验证这一点非常容易,请转到webapp文件夹并查看zul是否已更改。
2.文件被某些缓存框架缓存。 (默认情况下,它不会被缓存,但是我看到一些项目使用他们自己的缓存工具导致了此问题。)
我认为这应该是环境问题,而不是ZK问题。