Hello,


it seems that the Digester Class of Struts is a strange thing.
I take the following XML-Document (in a String):

<?xml version="1.0" encoding="UTF-8"?>
<login usr="Benutzername"
       hilfe="true"
       rn="Hartmut Bernecker"
       mail="[EMAIL PROTECTED]"
       txt="Persoenlicher Begruessungstext des Benutzers"
       spr="de"
       med="medium">
  <grp name="Gruppe 1" txt="Begruessungstext 1"></grp>
  <grp name="Gruppe 2" txt="Begruessungstext 2"></grp>
</login>

------------------------------------------------------------------


Then I want to parse it with a Digester object as follows:


------------------------------------------------------------------
Digester digester = new Digester();
digester.setDebug(1);
digester.setValidating(false);

digester.push(this);

digester.addObjectCreate("login/grp",
"de.dhw.asim.components.benutzer.BenutzerGruppe");
digester.addSetProperties("login/grp");
digester.addSetNext("login/grp", "addGrp",
"de.dhw.asim.components.benutzer.BenutzerGruppe");

digester.addObjectCreate("login",
"de.dhw.asim.components.benutzer.LoginObjekt");
digester.addSetProperties("login");
digester.addSetNext("login", "setLoginObjekt",
"de.dhw.asim.components.benutzer.LoginObjekt");

try {
 digester.parse(new InputSource(new StringReader(pXml)));
}
catch (IOException e){
  e.printStackTrace();
}
catch (SAXException e)
{
  e.printStackTrace();
}

--------------------------------------------------------------------------


Then I receive the following Message:
It seems that the stack can not be controlled.
Please give me an idea of what happens here and how to do it in the
right way!!

--------------------------------------------------------------------------

New de.dhw.asim.components.benutzer.LoginObjekt

Set de.dhw.asim.components.benutzer.LoginObjekt properties

New de.dhw.asim.components.benutzer.BenutzerGruppe

Set de.dhw.asim.components.benutzer.BenutzerGruppe properties

Call
de.dhw.asim.components.benutzer.LoginObjekt.addGrp(de.dhw.asim.components.benutzer.BenutzerGruppe@683912)

End event threw exception

java.lang.NoSuchMethodException

        at java.lang.Class.getMethod0(Native Method)

        at java.lang.Class.getMethod(Class.java:888)

        at org.apache.struts.digester.SetNextRule.end(SetNextRule.java:156)

        at org.apache.struts.digester.Digester.endElement(Digester.java:409)

        at
org.xml.sax.helpers.XMLReaderAdapter.endElement(XMLReaderAdapter.java:347)

        at org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1403)

        at
org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1436)

        at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1205)

        at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)

        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035)

        at
org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)

        at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)

        at org.apache.struts.digester.Digester.parse(Digester.java:738)

        at
de.dhw.asim.components.benutzer.Xml2Object.getUserObjekt(Xml2Object.java:49)

        at de.dhw.asim.components.benutzer.Test.main(Test.java:11)

java.lang.NoSuchMethodException

        at org.apache.struts.digester.Digester.endElement(Digester.java:412)

        at
org.xml.sax.helpers.XMLReaderAdapter.endElement(XMLReaderAdapter.java:347)

        at org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1403)

        at
org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1436)

        at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1205)

        at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)

        at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035)

        at
org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)

--------------------------------------------------------------------------


Any help is very appreciated!

Hartmut

Reply via email to