Many thanks for your help and for such a prompt response!
Best Regards,
Simone
| Dennis Sosnoski <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED] 07/27/2005 04:28 PM
|
To: [email protected] cc: Subject: Re: [jibx-users] Collection Binding Exception with List and Collection Interfaces |
Hi Simone,
Since your field is of an interface type the binding compiler doesn't
know what type to use for an actual instance. You can get around this by
either specifying type="java.util.ArrayList" (or any other concrete type
that matches the interface and has a no-argument constructor), or by
using a factory="factoryMethod" to supply a method that creates an
instance of your type.
- Dennis
[EMAIL PROTECTED] wrote:
>
> Hello all. I have been trying to bind a simple class and am getting
> an exception. Any suggestions/tips would be greatly appreciated.
> Below is the binding and class snippet followed by the exception.
>
> <binding>
> <mapping name="BondCashFlows" class="BondSen">
> <collection field="cflows"/>
> </mapping>
> <mapping name="cashflow" class="BondCashFlows">
> <value name="date" field="date"/>
> <value name="amount" field="amount"/>
> <value name="amount2" field="amount2"/>
> <value name="amount3" field="amount3"/>
> <value name="amount4" field="amount4"/>
> </mapping>
> </binding>
>
>
> public class BondSen {
> public List cflows;
>
> public class BondCashFlows {
>
> public BondCashFlows() {}
>
> public String date;
> public String amount;
> public String amount2;
> public String amount3;
> public String amount4;
> }
>
> exception thrown:
>
> org.jibx.runtime.JiBXException: Need no-argument constructor or
> factory for java.util.List
> at
> org.jibx.binding.def.ObjectBinding.genNewInstanceCode(ObjectBinding.java:393)
>
> at
> org.jibx.binding.def.ObjectBinding.genNewInstanceCall(ObjectBinding.java:432)
>
> at
> org.jibx.binding.def.ObjectBinding.genNewInstance(ObjectBinding.java:884)
> at
> org.jibx.binding.def.ComponentProperty.genContentUnmarshal(ComponentProperty.java:233)
>
> at
> org.jibx.binding.def.NestedStructure.genContentUnmarshal(NestedStructure.java:153)
>
> at
> org.jibx.binding.def.ObjectBinding.genUnmarshalContentCall(ObjectBinding.java:736)
>
> at
> org.jibx.binding.def.ObjectBinding.genContentUnmarshal(ObjectBinding.java:875)
>
> at
> org.jibx.binding.def.ElementWrapper.genContentUnmarshal(ElementWrapper.java:272)
>
> at
> org.jibx.binding.def.MappingDefinition.generateCode(MappingDefinition.java:541)
>
> at
> org.jibx.binding.def.DefinitionContext.generateCode(DefinitionContext.java:600)
>
> at
> org.jibx.binding.def.BindingDefinition.generateCode(BindingDefinition.java:578)
>
> at org.jibx.binding.Compile.compile(Compile.java:303)
> at org.jibx.binding.ant.CompileTask.execute(CompileTask.java:248)
> at org.apache.tools.ant.Task.perform(Task.java:341)
> at
> org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:185)
> at
> org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
> at
> org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
> at
> org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
> at
> org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:87)
>
> at
> org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
> at
> org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
> at
> org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
> at
> org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84)
> at
> org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
> at
> org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
> at
> org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:79)
>
> at
> org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:110)
>
> at com.werken.werkz.Goal.fire(Goal.java:639)
> at com.werken.werkz.Goal.attain(Goal.java:575)
> at
> com.werken.werkz.WerkzProject.attainGoal(WerkzProject.java:193)
> at
> org.apache.maven.jelly.tags.werkz.MavenAttainGoalTag.doTag(MavenAttainGoalTag.java:127)
>
> at
> org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
> at
> org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
> at
> org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
> at
> com.werken.werkz.jelly.PostGoalTag$1.firePostGoal(PostGoalTag.java:87)
> at com.werken.werkz.Goal.firePostGoalCallbacks(Goal.java:710)
> at com.werken.werkz.Goal.fire(Goal.java:654)
> at com.werken.werkz.Goal.attain(Goal.java:575)
> at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
> at com.werken.werkz.Goal.attain(Goal.java:573)
> at com.werken.werkz.Goal.attainPrecursors(Goal.java:488)
> at com.werken.werkz.Goal.attain(Goal.java:573)
> at
> org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:671)
> at
> org.apache.maven.MavenSession.attainGoals(MavenSession.java:263)
> at org.apache.maven.cli.App.doMain(App.java:488)
> at org.apache.maven.cli.App.main(App.java:1239)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:324)
> at com.werken.forehead.Forehead.run(Forehead.java:551)
> at com.werken.forehead.Forehead.main(Forehead.java:581)
>
>
>
> I have tried the same example with the generic Collection interface
> which is ultimately preferred, however get the same exception except
> for class java.util.Collection. If I use an ArrayList however it
> works fine. Anyone else experiencing/experienced this same problem?
> Did I miss something?
>
> Many thanks for any suggestions/tips!
>
> sns
>
>This communication is for informational purposes only. It is not intended
>as an offer or solicitation for the purchase or sale of any financial
>instrument or as an official confirmation of any transaction. All market prices,
>data and other information are not warranted as to completeness or accuracy and
>are subject to change without notice. Any comments or statements made herein
>do not necessarily reflect those of JPMorgan Chase & Co., its subsidiaries
>and affiliates.
>
>
-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO September
19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
jibx-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jibx-users
This communication is for informational purposes only. It is not intended as an offer or solicitation for the purchase or sale of any financial instrument or as an official confirmation of any transaction. All market prices, data and other information are not warranted as to completeness or accuracy and are subject to change without notice. Any comments or statements made herein do not necessarily reflect those of JPMorgan Chase & Co., its subsidiaries and affiliates.
