我有一个类层次结构,它有一个名为EntityModel的基类,还有两个类InvestorModel和AgentModel,每个类都直接继承并添加了一些属性。然后,我将创建Mule数据地图,以便将JSON映射到每个子类。
InvestorModel映射工作正常,但是AgentModel映射失败(在IDE预览中),IOException声明它不能实例化EntityModel。这看起来很奇怪,因为它可以在InvestorModel映射中实例化它。我正在发布错误,但我没有任何源可供发布,因为这些只是映射文件。我只是不知道该从哪里开始找。
Mule Studio是最新的版本3.5.0
java.io.IOException: org.jetel.exception.JetelException: za.co.sci.core.shared.EntityModel can not be instantiated.
at org.jetel.component.tree.writer.TreeFormatter.write(TreeFormatter.java:72)
at org.jetel.util.MultiFileWriter.writeRecord2CurrentTarget(MultiFileWriter.java:420)
at org.jetel.util.MultiFileWriter.write(MultiFileWriter.java:297)
at org.jetel.component.TreeWriter.execute(TreeWriter.java:464)
at org.jetel.graph.Node.run(Node.java:465)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.jetel.exception.JetelException: za.co.sci.core.shared.EntityModel can not be instantiated.
at com.opensys.cloveretl.component.tree.writer.bean.BeanWriter.a(Unknown Source)
at com.opensys.cloveretl.component.tree.writer.bean.BeanWriter.a(Unknown Source)
at com.opensys.cloveretl.component.tree.writer.bean.BeanWriter.a(Unknown Source)
at com.opensys.cloveretl.component.tree.writer.bean.BeanWriter.writeStartNode(Unknown Source)
at org.jetel.component.tree.writer.model.runtime.WritableObject.writeContent(WritableObject.java:67)
at org.jetel.component.tree.writer.model.runtime.WritableContainer.write(WritableContainer.java:67)
at org.jetel.component.tree.writer.model.runtime.WritableObject.writeContent(WritableObject.java:77)
at org.jetel.component.tree.writer.model.runtime.WritableContainer.write(WritableContainer.java:67)
at org.jetel.component.tree.writer.model.runtime.WritableObject.writeContent(WritableObject.java:77)
at org.jetel.component.tree.writer.model.runtime.WritableContainer.write(WritableContainer.java:67)
at org.jetel.component.tree.writer.model.runtime.WritableObject.writeContent(WritableObject.java:77)
at org.jetel.component.tree.writer.model.runtime.WritableContainer.write(WritableContainer.java:67)
at org.jetel.component.tree.writer.model.runtime.WritableObject.writeContent(WritableObject.java:77)
at org.jetel.component.tree.writer.TreeFormatter.write(TreeFormatter.java:69)
... 7 more类片段:
public abstract class EntityModel implements Serializable {
protected Long id;
private long entityNumber;
private EntityStatus status;
private String entityName;
...
public class AgentModel extends EntityModel implements Serializable{
private int agentCode;
private AgentType agentType;
private AgentClass agentClass;
...
public class InvestorModel extends EntityModel implements Serializable {
private boolean blockedRand;
private String utAUTType;
...发布于 2014-03-28 07:28:17
结果表明,错误是由于基类是抽象的。很明显真的。
一张地图起作用的原因,而另一幅地图不起作用的原因是田地的顺序。映射到InvestorModel上的第一个字段是在InvestorModel中定义的字段,因此映射程序知道要实例化哪个类。在AgentModel映射中,第一个字段是在抽象类EntityModel上定义的,因此映射程序试图实例化该类,但失败了,我选择了AgentModel作为目标并不重要。
https://stackoverflow.com/questions/22652277
复制相似问题