Robert,
Thank you for the suggestion I tried to implement your suggestion and am
encountering the following NullPointerException:
java.lang.NullPointerException
at
org.apache.commons.digester.CallMethodRule.<init>(CallMethodRule.java:229)
at org.apache.commons.digester.Digester.addCallMethod(Digester.java:1480)
at com.ibm.us.force.xml.DigesterHelperOLD.main(DigesterHelperOLD.java:21)
Exception in thread "main"
I create a String array of the types for the put method in the hashtable per
your suggestion:
String types[] = {"java.lang.Object", "java.lang.Object"};
I then passed the types String array to the addCallMethod per your
suggestion:
digester.addCallMethod("toplevel/element", "put", 2, types);
when the addCallMethod is executed I'm getting the NullPointerException that
I included above. The types String array is populated, the digester is not
null, Any ideas???
Thanks for your help,
Brad
>From: robert burrell donkin <[EMAIL PROTECTED]>
>Reply-To: "Jakarta Commons Users List" <[EMAIL PROTECTED]>
>To: "Jakarta Commons Users List" <[EMAIL PROTECTED]>
>Subject: Re: [digester] Re: Rules for parsing to a Hashtable
>Date: Mon, 8 Jul 2002 23:15:55 +0100
>
>hi brad
>
>i think i have an idea what's going on.
>
>CallMethodRule uses only exact matching and so you might need to specify
>the exact types before digester will find the method.
>
>try specifying the classes that 'put' takes, something like
>
>String types = {"java.lang.Object","java.lang.Object"};
>digester.addCallMethod("toplevel/element", "put", 2, types);
>
>and see if it starts working.
>
>- robert
>
>On Monday, July 8, 2002, at 10:48 PM, Brad Jones wrote:
>
>>Robert here's the stack trace you asked for:
>>
>>java.lang.NoSuchMethodException: No such accessible method: put() on
>>object: java.util.Hashtable
>> at
>>org.apache.commons.beanutils.MethodUtils.invokeExactMethod(MethodUtils.java:
>>322)
>> at
>>org.apache.commons.digester.CallMethodRule.end(CallMethodRule.java:421)
>> at org.apache.commons.digester.Digester.endElement(Digester.java:830)
>> at org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1403)
>> at org.apache.xerces.validators.common.XMLValidator.callEndElement
>>(XMLValidator.java:1480)
>> at
>>org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(
>>XMLDocumentScanner.java:1204)
>> at org.apache.xerces.framework.XMLDocumentScanner.parseSome
>>(XMLDocumentScanner.java:381)
>> at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1081)
>> at org.apache.commons.digester.Digester.parse(Digester.java:1302)
>> at com.ibm.us.force.xml.DigesterHelperOLD.main(DigesterHelperOLD.java:30)
>>[ERROR] Digester - -End event threw exception
>><java.lang.NoSuchMethodException: No such accessible method: put() on
>>object: java.util.Hashtable>
>>
>>I tried to get the logs for it but I haven't learned how configure the
>>logging and retrieve the log file. If I need to I'll get that to you
>>also. Thanks for any suggestions you might have.
>>
>>I'm using digester v 1.2
>>
>>Brad
>>
>>
>>>From: robert burrell donkin <[EMAIL PROTECTED]>
>>>Reply-To: "Jakarta Commons Users List" <[EMAIL PROTECTED]>
>>>To: "Jakarta Commons Users List" <[EMAIL PROTECTED]>
>>>Subject: [digester] Re: Rules for parsing to a Hashtable
>>>Date: Mon, 8 Jul 2002 21:21:19 +0100
>>>
>>>hi brad
>>>
>>>i've given your code a whirl but i don't seem to have a problem.
>>>
>>>what version of digester are you using?
>>>
>>>BTW i would be useful if you could prefix your question with the
>>>component name next time. (there are a lot of components in commons and
>>>the prefix makes it easier for the right people to answer the right
>>>questions.)
>>>
>>>- robert
>>>
>>>On Monday, July 8, 2002, at 08:04 PM, Brad Jones wrote:
>>>
>>>>
>>>>
>>>>I'm currently trying to parse objects from an XML file to a hashtable.
>>>>I'
>>>>m calling the put from the hashtable in my rule and passing 2 parameters
>>>>one that represents the key and the other that represents the value.
>>>>For some reason I'm getting a SAXException saying that the put method
>>>>does not exist on hashtable. Here's the code I'm working with
>>>>currently. Any suggestions would be greatly appreciated:
>>>>
>>>> java.io.FileInputStream fileInputStream = null;
>>>> Digester digester = new Digester();
>>>>
>>>> Hashtable ht = new Hashtable();
>>>>
>>>> digester.push(ht);
>>>> digester.setValidating(false);
>>>>
>>>>
>>>> //Sets filed 1 as the key and field 2 as the value
>>>> digester.addCallMethod("toplevel/element", "put", 2);
>>>> digester.addCallParam("toplevel/element/field1", 0, "field1");
>>>> digester.addCallParam("toplevel/element/field2", 1, "field2");
>>>>
>>>> try {
>>>> fileInputStream = new java.io.FileInputStream("C:/test.xml");
>>>> } catch (java.io.FileNotFoundException fnfe) {
>>>> }
>>>>
>>>> try {
>>>> Object data = digester.parse(fileInputStream);
>>>> fileInputStream.close();
>>>>
>>>> } catch (org.xml.sax.SAXException se) {
>>>> System.out.println(se.getMessage());
>>>> } catch (java.io.IOException ie) {
>>>> }
>>>>
>>>>Here's the XML file that I'm parsing:
>>>>
>>>><toplevel>
>>>> <element>
>>>> <field1>Value 1</field1>
>>>> <field2>Value 2</field2>
>>>> </element>
>>>> <element>
>>>> <field1>Value 3</field1>
>>>> <field2>Value 4</field2>
>>>> </element>
>>>></toplevel>
>>>>
>>>>Thank you for any sugestions that you can provide...
>>>>
>>>>Brad
>>>>
>>>>
>>>>
>>>>_________________________________________________________________
>>>>MSN Photos is the easiest way to share and print your photos:
>>>>http://photos.msn.com/support/worldwide.aspx
>>>>
>>>>
>>>>--
>>>>To unsubscribe, e-mail: <mailto:commons-user-
>>>>[EMAIL PROTECTED]
>>>>org>
>>>>For additional commands, e-mail: <mailto:commons-user-
>>>>[EMAIL PROTECTED]
>>>>org>
>>>>
>>>
>>>
>>>--
>>>To unsubscribe, e-mail: <mailto:commons-user-
>>>[EMAIL PROTECTED]>
>>>For additional commands, e-mail: <mailto:commons-user-
>>>[EMAIL PROTECTED]>
>>
>>
>>
>>
>>_________________________________________________________________
>>Join the world�s largest e-mail service with MSN Hotmail.
>>http://www.hotmail.com
>>
>>
>>--
>>To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED].
>>org>
>>For additional commands, e-mail: <mailto:[EMAIL PROTECTED].
>>org>
>>
>
>
>--
>To unsubscribe, e-mail:
><mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail:
><mailto:[EMAIL PROTECTED]>
_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>