首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >骡子DataMapper IOException

骡子DataMapper IOException
EN

Stack Overflow用户
提问于 2014-03-26 05:32:55
回答 1查看 142关注 0票数 0

我有一个类层次结构,它有一个名为EntityModel的基类,还有两个类InvestorModelAgentModel,每个类都直接继承并添加了一些属性。然后,我将创建Mule数据地图,以便将JSON映射到每个子类。

InvestorModel映射工作正常,但是AgentModel映射失败(在IDE预览中),IOException声明它不能实例化EntityModel。这看起来很奇怪,因为它可以在InvestorModel映射中实例化它。我正在发布错误,但我没有任何源可供发布,因为这些只是映射文件。我只是不知道该从哪里开始找。

Mule Studio是最新的版本3.5.0

代码语言:javascript
复制
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

类片段:

代码语言:javascript
复制
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;
...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-28 07:28:17

结果表明,错误是由于基类是抽象的。很明显真的。

一张地图起作用的原因,而另一幅地图不起作用的原因是田地的顺序。映射到InvestorModel上的第一个字段是在InvestorModel中定义的字段,因此映射程序知道要实例化哪个类。在AgentModel映射中,第一个字段是在抽象类EntityModel上定义的,因此映射程序试图实例化该类,但失败了,我选择了AgentModel作为目标并不重要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22652277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档