I haven't. In fact I have never heard of it. I'll look into it now. I am in favour of anything that makes the app easier to configure and is cool.
Thanks! ----- Original Message ----- From: "Marco Mistroni" <[EMAIL PROTECTED]> To: "'Jakarta Commons Users List'" <[EMAIL PROTECTED]> Sent: Wednesday, November 10, 2004 3:55 AM Subject: RE: More Digester Help > Hello Luke, > Glad to know I have helped :-) > > Have you considered using an xml rule file instead of setting rules > Programmatically? > > It's cool! > > Regards > marco > > -----Original Message----- > From: Luke Shannon [mailto:[EMAIL PROTECTED] > Sent: 09 November 2004 19:27 > To: Jakarta Commons Users List > Subject: Re: More Digester Help > > Hi Marco; > > You were right about the path. I made some changes following the > document > structure more carefully. It now works perfectly. > > Thanks for you help. > > Here is what I ended up with: > > public class XMLParser { > > public Vector items; > private Digester digester; > private File parseMe; > > public XMLParser(File file) { > parseMe = file; > items = new Vector(); > } > > public Version digest() throws IOException, SAXException { > digester = new Digester(); > digester.setValidating(false); > digester.addObjectCreate("DATA/VERSION", Version.class); > digester.addObjectCreate("DATA/VERSION/ITEM", Item.class); > digester.addBeanPropertySetter("DATA/VERSION/ITEM"); > digester.addSetNext("DATA/VERSION/ITEM", "setITEMS"); > return (Version)digester.parse(parseMe); > } > } > > ----- Original Message ----- > From: "Luke Shannon" <[EMAIL PROTECTED]> > To: "Jakarta Commons Users List" <[EMAIL PROTECTED]> > Sent: Tuesday, November 09, 2004 1:48 PM > Subject: Re: More Digester Help > > > > Hi Marco; > > > > Here is the XML: > > > > <?xml version="1.0" encoding="UTF-8"?> > > <DATA> > > <DEF> > > <TYPE>138</TYPE> > > <TYPES/> > > </DEF> > > <VERSION> > > <ITEM NAME="provider" TYPE="text">me</ITEM> > > <ITEM NAME="progress_ref" TYPE="text">1098818760440</ITEM> > > <ITEM NAME="name" TYPE="text">file1folder1</ITEM> > > <ITEM NAME="desc" TYPE="text">rg</ITEM> > > <ITEM NAME="select" TYPE="text">Please Select...</ITEM> > > <ITEM NAME="poster" TYPE="text">hypermedia</ITEM> > > <ITEM NAME="sort" TYPE="text">3</ITEM> > > <ITEM DIR="apache_config_command.txt" HEIGHT="-1" > NAME="kcfileupload" > > SIZE="942" STYPE="file" TYPE="upload" > > WIDTH="-1">apache_config_command.txt</ITEM> > > </VERSION> > > </DATA> > > > > Here is the XMLParser (uses Digester) and the Item class that I use to > store > > the data: > > > > public class XMLParser { > > > > public Vector items; > > private Digester digester; > > private File parseMe; > > > > public XMLParser(File file) { > > parseMe = file; > > items = new Vector(); > > } > > > > public XMLParser digest() throws IOException, SAXException { > > digester = new Digester(); > > digester.push(this); > > digester.setValidating(false); > > digester.addObjectCreate("DATA/VERSION/ITEM", Item.class); > > digester.addCallMethod("DATA/VERSION/ITEM", "setItem", 0); > > digester.addSetNext("DATA/VERSION/ITEM", "addItems"); > > return (XMLParser)digester.parse(parseMe); > > } > > > > public void addItems(Item i) { > > System.out.println("Adding: " + i.toString()); > > items.add(i); > > } > > } > > > > public class Item { > > String item; > > > > public Item() { } > > > > /** > > * @param content The content to set. > > */ > > public void setItem(String _item) { > > System.out.println("Adding to item object " + _item); > > item = _item; > > } > > > > public String toString() { > > return "This item contains: " + item.toString(); > > } > > } > > > > > > > > ----- Original Message ----- > > From: "Marco Mistroni" <[EMAIL PROTECTED]> > > To: "'Jakarta Commons Users List'" <[EMAIL PROTECTED]> > > Sent: Tuesday, November 09, 2004 1:12 PM > > Subject: RE: More Digester Help > > > > > > > Hello, > > > It will be useful If you can post the xml file and > > > The code that you are putting in digester.. > > > If you got a null , it probably means that some path defined in your > > > Rules are not correct.... > > > > > > Regards > > > marco > > > > > > -----Original Message----- > > > From: Luke Shannon [mailto:[EMAIL PROTECTED] > > > Sent: 09 November 2004 18:09 > > > To: [EMAIL PROTECTED] > > > Subject: More Digester Help > > > > > > Hi All; > > > > > > Sorry about the double post earlier. Mail client is a little wacky. > > > > > > I am trying to parse my XML document and am getting the error below. > > > > > > Underneath the error you will find my XML doc and my Digester class > and > > > Bean > > > Class. > > > > > > Basically I want to put all the contents of the INPUT tags into a > > > StringBuffer I can use in the creation of a Lucene document. > > > > > > It was parsing correctly before, but the addItems method was getting > a > > > NULL > > > each time it was called. > > > > > > I have been playing with the code to fix this problem and now end up > > > with > > > the error below. I am lost. > > > > > > Any tips would be greatly appreciated. > > > > > > Thanks, > > > > > > Luke > > > > > > > > > > > > 13:00:29,732java.lang.reflect.InvocationTargetException > > > 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.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:2 > > > 16) > > > at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:208) > > > at org.apache.commons.digester.Rule.end(Rule.java:228) > > > at > org.apache.commons.digester.Digester.endElement(Digester.java:1067) > > > at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown > > > Source) > > > at > > > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unk > > > nown > > > Source) > > > at > > > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDis > > > patc > > > her.dispatch(Unknown Source) > > > at > > > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkno > > > wn > > > Source) > > > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) > > > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) > > > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > > > at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) > > > at org.apache.commons.digester.Digester.parse(Digester.java:1556) > > > at model.XMLParser.digest(XMLParser.java:40) > > > at model.XMLDocument.Document(XMLDocument.java:69) > > > at servlets.Update.indexDocs(Update.java:124) > > > at servlets.Update.indexDocs(Update.java:108) > > > at servlets.Update.doGet(Update.java:81) > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > > > at > > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica > > > tion > > > FilterChain.java:237) > > > at > > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt > > > erCh > > > ain.java:157) > > > at > > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv > > > e.ja > > > va:214) > > > at > > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > > > ntex > > > t.java:104) > > > at > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > > > 20) > > > at > > > > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon > > > text > > > Valve.java:198) > > > at > > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv > > > e.ja > > > va:152) > > > at > > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > > > ntex > > > t.java:104) > > > at > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > > > 20) > > > at > > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java > > > :137 > > > ) > > > at > > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > > > ntex > > > t.java:104) > > > at > > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java > > > :118 > > > ) > > > at > > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > > > ntex > > > t.java:102) > > > at > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > > > 20) > > > at > > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. > > > java > > > :109) > > > at > > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > > > ntex > > > t.java:104) > > > at > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > > > 20) > > > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) > > > at > > > > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) > > > at > > > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:79 > > > 9) > > > at > > > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC > > > onne > > > ction(Http11Protocol.java:705) > > > at > > > > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:57 > > > 7) > > > at > > > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool > > > .jav > > > a:683) > > > at java.lang.Thread.run(Unknown Source) > > > Caused by: java.lang.NullPointerException > > > at model.Item.toString(Item.java:29) > > > at model.XMLParser.addItems(XMLParser.java:44) > > > ... 48 more > > > java.lang.NullPointerException > > > at > > > > org.apache.commons.digester.Digester.createSAXException(Digester.java:27 > > > 92) > > > at > > > > org.apache.commons.digester.Digester.createSAXException(Digester.java:28 > > > 18) > > > at > org.apache.commons.digester.Digester.endElement(Digester.java:1070) > > > at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown > > > Source) > > > at > > > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unk > > > nown > > > Source) > > > at > > > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDis > > > patc > > > her.dispatch(Unknown Source) > > > at > > > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkno > > > wn > > > Source) > > > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) > > > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown > Source) > > > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > > > at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) > > > at org.apache.commons.digester.Digester.parse(Digester.java:1556) > > > at model.XMLParser.digest(XMLParser.java:40) > > > at model.XMLDocument.Document(XMLDocument.java:69) > > > at servlets.Update.indexDocs(Update.java:124) > > > at servlets.Update.indexDocs(Update.java:108) > > > at servlets.Update.doGet(Update.java:81) > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > > > at > > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica > > > tion > > > FilterChain.java:237) > > > at > > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt > > > erCh > > > ain.java:157) > > > at > > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv > > > e.ja > > > va:214) > > > at > > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > > > ntex > > > t.java:104) > > > at > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > > > 20) > > > at > > > > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon > > > text > > > Valve.java:198) > > > at > > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv > > > e.ja > > > va:152) > > > at > > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > > > ntex > > > t.java:104) > > > at > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > > > 20) > > > at > > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java > > > :137 > > > ) > > > at > > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > > > ntex > > > t.java:104) > > > at > > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java > > > :118 > > > ) > > > at > > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > > > ntex > > > t.java:102) > > > at > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > > > 20) > > > at > > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. > > > java > > > :109) > > > at > > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCo > > > ntex > > > t.java:104) > > > at > > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5 > > > 20) > > > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) > > > at > > > > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) > > > at > > > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:79 > > > 9) > > > at > > > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC > > > onne > > > ction(Http11Protocol.java:705) > > > at > > > > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:57 > > > 7) > > > at > > > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool > > > .jav > > > a:683) > > > at java.lang.Thread.run(Unknown Source) > > > > > > public class XMLParser { > > > > > > public Vector items; > > > private Digester digester; > > > private File parseMe; > > > > > > public XMLParser(File file) { > > > parseMe = file; > > > items = new Vector(); > > > } > > > > > > public XMLParser digest() throws IOException, SAXException { > > > digester = new Digester(); > > > digester.push(this); > > > digester.setValidating(false); > > > digester.addObjectCreate("DATA/VERSION/ITEM", Item.class); > > > digester.addCallMethod("DATA/VERSION/ITEM", "setItem", 0); > > > digester.addSetNext("DATA/VERSION/ITEM", "addItems"); > > > return (XMLParser)digester.parse(parseMe); > > > } > > > > > > public void addItems(Item i) { > > > System.out.println("Adding: " + i.toString()); > > > items.add(i); > > > } > > > } > > > > > > public class Item { > > > String item; > > > > > > public Item() { } > > > > > > /** > > > * @param content The content to set. > > > */ > > > public void setItem(String _item) { > > > System.out.println("Adding to item object " + _item); > > > item = _item; > > > } > > > > > > public String toString() { > > > return "This item contains: " + item.toString(); > > > } > > > } > > > > > > <?xml version="1.0" encoding="UTF-8"?> > > > <DATA> > > > <DEF> > > > <TYPE>138</TYPE> > > > <TYPES/> > > > </DEF> > > > <VERSION> > > > <ITEM NAME="provider" TYPE="text">me</ITEM> > > > <ITEM NAME="progress_ref" TYPE="text">1098818760440</ITEM> > > > <ITEM NAME="name" TYPE="text">file1folder1</ITEM> > > > <ITEM NAME="desc" TYPE="text">rg</ITEM> > > > <ITEM NAME="select" TYPE="text">Please Select...</ITEM> > > > <ITEM NAME="poster" TYPE="text">hypermedia</ITEM> > > > <ITEM NAME="sort" TYPE="text">3</ITEM> > > > <ITEM DIR="apache_config_command.txt" HEIGHT="-1" > > > NAME="kcfileupload" > > > SIZE="942" STYPE="file" TYPE="upload" > > > WIDTH="-1">apache_config_command.txt</ITEM> > > > </VERSION> > > > </DATA> > > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: > [EMAIL PROTECTED] > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
