ZK Configuration"

From Documentation
m
Line 25: Line 25:
 
If an attribute or a listener is not serializable, ZK will skip it, i.e., not to serialize it (similar to how a Servlet container serializes the attributes of sessions). It is sometimes hard to know what are ignored, since it is common for a developer to forget to declare a value or a listener as serializable.
 
If an attribute or a listener is not serializable, ZK will skip it, i.e., not to serialize it (similar to how a Servlet container serializes the attributes of sessions). It is sometimes hard to know what are ignored, since it is common for a developer to forget to declare a value or a listener as serializable.
  
To detect this problem, you could turn on the log for <tt>org.zkoss.io.serializable</tt> to the DEBUG level<ref>Available in 5.0.7</ref>.
+
To detect this problem, you could turn on the logger for <tt>org.zkoss.io.serializable</tt> to the DEBUG level<ref>Available in 5.0.7</ref>. The logger is [http://download.oracle.com/javase/6/docs/api/java/util/logging/Logger.html the standard logger]. You could consult the configuration of the Web server you use. Or, you could run the following statement when your application starts<ref>It can be done by use of the<javadoc type="interface">org.zkoss.zk.ui.util.WebAppInit</javadoc> listener. For more information, please refer to [[ZK Developer's Reference/Customization|the Customization section]].</ref>.
 +
 
 +
<source lang="java">
 +
org.zkoss.util.logging.Log.lookup("org.zkoss.io.serializable").setLevel("DEBUG");
 +
</source>
  
 
<blockquote>
 
<blockquote>

Revision as of 02:50, 29 April 2011


ZK Configuration


Turn on Serializable UI Factory

To use ZK in a clustering environment, you have to use the serializable UI factory. It could be done by specifying the following statement in WEB-INF/zk.xml:

<zk>
	<system-config>
		<ui-factory-class>org.zkoss.zk.ui.http.SerializableUiFactory</ui-factory-class>
	</system-config>
</zk>

SerializableUiFactory is the UI factory that will instantiate serializable sessions such that the sessions, components, pages and desktops will be serialized when a session is about to deactivate.

Also notice that you cannot enable the use of the event thread[1]. It is disabled by default. For more information, please refer to the Event Threads section.


  1. The reason is that the event thread might be suspended. Unfortunately, the thread cannot be migrated from one machine to another.

Turn on Log

If an attribute or a listener is not serializable, ZK will skip it, i.e., not to serialize it (similar to how a Servlet container serializes the attributes of sessions). It is sometimes hard to know what are ignored, since it is common for a developer to forget to declare a value or a listener as serializable.

To detect this problem, you could turn on the logger for org.zkoss.io.serializable to the DEBUG level[1]. The logger is the standard logger. You could consult the configuration of the Web server you use. Or, you could run the following statement when your application starts[2].

org.zkoss.util.logging.Log.lookup("org.zkoss.io.serializable").setLevel("DEBUG");

  1. Available in 5.0.7
  2. It can be done by use of theWebAppInit listener. For more information, please refer to the Customization section.

Version History

Last Update : 2011/04/29


Version Date Content
5.0.7 April 2011 The log called org.zkoss.io.serializable was introduced.



Last Update : 2011/04/29

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.