วันพฤหัสบดีที่ 15 กันยายน พ.ศ. 2554

การแก้ไข error zk-spring duplicate class definition: org/zkoss/spring/beans/zkcomponents/ZKComponentBeanMethods

ถ้าลองทำตามตัวอย่าง จากที่ ZK มาให้จากลิงค์ http://books.zkoss.org/wiki/ZK_Spring_Essentials/Working_with_ZK_Spring/Working_with_ZK_Spring_Core/Inject_ZK_Components_in_Spring_Beans
นี้ แล้วอาจจะเกิด exception ตามนี้ครับ
Caused by: java.lang.LinkageError: duplicate class definition: org/zkoss/spring/beans/zkcomponents/ZKComponentBeanMethods
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:592)
        at javassist.ClassPool.toClass2(ClassPool.java:1098)
        at javassist.ClassPool.toClass(ClassPool.java:1079)
        ... 44 more


      ซึ่งมาจาก เรา เรียงลำดับการโหลดผิดใน web.xml โดยจะต้องเอา org.zkoss.spring.web.context.CoreContextListener ขึ้นก่อน org.springframework.web.context.ContextLoaderListener จะทำให้แก้ปัญหานี้ได้ครับ