javazkzul

Zk include richlet in zul


I created a richlet java class and linked in the zk.xml and it work fine. now I'm trying to include this richlet in a simple zul page but i get error.

<zk xmlns:w="client" xmlns:n="native">
    <window>
  <include src="/zk/testdebug" mode="instant"/> <!-- creates another page -->
</window>
</zk>

and this is my log error

SEVERE: Failed to assign [src=/zk/testdebug] to <Include uP9Q1>
Unknown exception: java.lang.reflect.InvocationTargetException.
2015-11-05 17:48:37.542:WARN:oejs.ServletHandler:/demoZK/test.zul
java.lang.NullPointerException
    at org.zkoss.zul.Include.fixModeOnly(Include.java:356)
    at org.zkoss.zul.Include.fixMode(Include.java:347)
    at org.zkoss.zul.Include.setSrc(Include.java:283)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.zkoss.zk.ui.metainfo.Property.assign0(Property.java:299)
    at org.zkoss.zk.ui.metainfo.Property.assign(Property.java:171)
    at org.zkoss.zk.ui.metainfo.ComponentInfo.applyProperties(ComponentInfo.java:732)
    at org.zkoss.zk.ui.impl.AbstractUiFactory.newComponent(AbstractUiFactory.java:136)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild0(UiEngineImpl.java:908)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:877)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:748)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate(UiEngineImpl.java:709)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild0(UiEngineImpl.java:923)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:877)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:748)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreateChild(UiEngineImpl.java:822)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate0(UiEngineImpl.java:771)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execCreate(UiEngineImpl.java:709)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:452)
    at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:358)
    at org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:217)
    at org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:136)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:734)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:594)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:486)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
    at 

Solution

  • This how I mapped my zkLoader in my web.xml

    <servlet-mapping>
        <servlet-name>zkLoader</servlet-name>
        <url-pattern>/zk/*</url-pattern>
    </servlet-mapping>
    

    so I tried to remove the main path "/zk" and now I can just include my richlet like that

    <zk xmlns:w="client" xmlns:n="native">
        <window>
      <include src="/testdebug" mode="instant"/> <!-- creates another page -->
    </window>
    </zk>

    and it work fine.