ZK - Open Source Ajax Java FrameworkZK - Open Source Ajax Java Framework

Initiator

lou
9 Feb 2009 16:22:58 GMT
9 Feb 2009 16:22:58 GMT

Hi, I use Initiator to block access to non-logged users (It runs well with ZK version under 3, but I have an error message with ZK 3.5.2).

ZUL file
<?xml version="1.0" encoding="UTF-8"?>
<?init class="lu.abilitic.gui.SessionWindow"?>
<window id="ouvrirGTWindow" border="normal" title="Abilitic - Ouvrir un groupe de travail" width="800px" height="150px">
<separator/>
<separator/>
<label value="Choisissez un groupe existant dans la liste pour l'ouvrir : "/>
<vbox id="vboxListGT">
<listbox type="gt" id="listGT" use="lu.abilitic.gui.components.DynamicListbox" width="600px"/>
</vbox>
<separator/>
<label id="erreur1" value=""/>
<hbox>
<button label="Ouvrir" image="/img/ok.gif" use="lu.abilitic.gui.components.OuvrirGTButton" width="90px"/>
<button label="Annuler" image="/img/supprimer.gif" use="lu.abilitic.gui.components.OuvrirGTButton" width="90px"/>
</hbox>
</window>


Java file
package lu.abilitic.gui;

import lu.abilitic.util.MappingAddresses;
import lu.abilitic.vo.SessionVO;

import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.Page;
import org.zkoss.zk.ui.util.Initiator;


public abstract class SessionWindow implements Initiator {

public void doInit(Page arg0, Object[] arg1) throws Exception {
System.out.println("test 1");
SessionVO sessionVO = new SessionVO() ;
System.out.println("test 2");
if ((sessionVO.getAttribute(MappingAddresses.SESSION_UTILISATEUR) == null)
&& (sessionVO.getAttribute(MappingAddresses.SESSION_ID) == null)) {
System.out.println("test 3");
sessionVO.clearAllAttributes() ;
System.out.println("test4");
Executions.sendRedirect(MappingAddresses.URL_LOGIN);
System.out.println("test 5");
}
}

public void doAfterCompose(Page arg0) throws Exception {
// TODO Auto-generated method stub

}

public boolean doCatch(Throwable arg0) {
// TODO Auto-generated method stub
return false;
}

public void doFinally() {
// TODO Auto-generated method stub

}
}


Error message
9 févr. 2009 17:13:21 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: "Servlet.service()" pour la servlet zkLoader a généré une exception
org.zkoss.zk.ui.UiException: java.lang.InstantiationException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.zkoss.lang.Classes.newInstance(Classes.java:78)
at org.zkoss.lang.Exceptions.wrap(Exceptions.java:164)
at org.zkoss.zk.ui.UiException$Aide.wrap(UiException.java:46)
at org.zkoss.zk.ui.metainfo.PageDefinition.doInit(PageDefinition.java:335)
at org.zkoss.zk.ui.impl.Initiators.doInit(Initiators.java:50)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage0(UiEngineImpl.java:364)
at org.zkoss.zk.ui.impl.UiEngineImpl.execNewPage(UiEngineImpl.java:296)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:230)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:167)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.InstantiationException
at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:30)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at org.zkoss.zk.ui.metainfo.InitiatorInfo.newInitiator(InitiatorInfo.java:174)
at org.zkoss.zk.ui.metainfo.PageDefinition.doInit(PageDefinition.java:329)
... 19 more

Do you know the raison of this error message ?
Thanks

henrichen
10 Feb 2009 01:01:49 GMT
10 Feb 2009 01:01:49 GMT

From the stack trace, it seems the instantiation of your initiator class is not working. Is the "lu.abilitic.gui.SessionWindow" a concrete class? Did you see the "test1", "test2", ... you println in the code?

lou
10 Feb 2009 08:48:43 GMT
10 Feb 2009 08:48:43 GMT

Hi,

No it was an abstrat class.
I have change this and it seems be ok now.
Thank you

saad
18 Mar 2010 10:55:56 GMT
18 Mar 2010 10:55:56 GMT

hi lou
can u explain in details what you correct so i can benifit from the change you make
thx

saad
18 Mar 2010 11:01:44 GMT
18 Mar 2010 11:01:44 GMT

hi
i have same error
GRAVE: "Servlet.service()" pour la servlet zkLoader a généré une exception
org.zkoss.lang.SystemException: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.zkoss.lang.Classes.newInstance(Classes.java:78)
at org.zkoss.lang.Exceptions.wrap(Exceptions.java:164)
at org.zkoss.lang.SystemException$Aide.wrap(SystemException.java:47)
at org.zkoss.util.resource.ResourceCache.get(ResourceCache.java:149)
at org.zkoss.web.util.resource.ResourceCaches.get(ResourceCaches.java:132)
at org.zkoss.zk.ui.metainfo.PageDefinitions.getPageDefinition(PageDefinitions.java:142)
at org.zkoss.zk.ui.impl.AbstractUiFactory.getPageDefinition(AbstractUiFactory.java:115)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.process(DHtmlLayoutServlet.java:221)
at org.zkoss.zk.ui.http.DHtmlLayoutServlet.doGet(DHtmlLayoutServlet.java:165)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.startOfMarkup(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.zkoss.idom.input.SAXBuilder.build(SAXBuilder.java:300)
at org.zkoss.zk.ui.metainfo.Parser.parse(Parser.java:102)
at org.zkoss.zk.ui.metainfo.PageDefinitions$MyLoader.parse(PageDefinitions.java:196)
at org.zkoss.web.util.resource.ResourceLoader.load(ResourceLoader.java:94)
at org.zkoss.util.resource.ResourceCache$Info.load(ResourceCache.java:219)
at org.zkoss.util.resource.ResourceCache$Info.<init>(ResourceCache.java:193)
at org.zkoss.util.resource.ResourceCache.get(ResourceCache.java:134)
... 19 more

and this is my class java
package com.action;
import org.zkoss.zul.*;
import org.zkoss.zk.ui.*;
import com.Bean.BeanUser;

public class Login extends Window {

public void login(Textbox tUserName, Textbox tPassword) throws WrongValueException{

BeanUser myUser = new BeanUser();

String userName = tUserName.getValue();
String password = tPassword.getValue();

//test login & password
if(userName.equals("jerome") && password.equals("zk"))
{
myUser.setLogin(userName);
myUser.setPassword(password);
myUser.setAdresse("69 rue de la Paix");
myUser.setPhone("00 00 12 34 56");

Sessions.getCurrent().setAttribute("user", myUser) ;
}
else
{
//control
throw new WrongValueException(tUserName,"Error: bad login or password");
}
}
}

so what u can advice me
thx

henrichen
18 Mar 2010 19:57:41 GMT
18 Mar 2010 19:57:41 GMT

> org.zkoss.lang.SystemException: org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.

Your zul might not be XML well formed. <anytag> must be ended with a </anytag>