我已经在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问题。

10-08 13:29