0

我有两个 java 组件。第一个是分析 MyTree 对象并使用 JXPathContext 生成要删除的任务。然后任务被发送到第二个。第二个组件是执行任务。在执行期间,我收到以下错误:

org.apache.commons.jxpath.JXPathException: Exception trying to remove all for xpath /*[action='REMOVE']
                                ; Cannot modify property: my.test.MyTree.bbb; No write method
        at org.apache.commons.jxpath.ri.JXPathContextReferenceImpl.removeAll(JXPathContextReferenceImpl.java:572)
        at org.apache.commons.jxpath.ri.JXPathCompiledExpression.removeAll(JXPathCompiledExpression.java:128)
        ...

类的结构更不像这样:

class MyTree {
        public final List<Aaa> aaa = new ArrayList();
        public final List<Bbb> bbb = new ArrayList();
        public final List<Ccc> ccc = new ArrayList();
    }

class Task {
    public String action;
}

class Aaa extends Task{
}
class Bbb extends Task{
}
class Ccc extends Task{
}

你知道我为什么会收到这个错误吗?

4

1 回答 1

0

我解决了这个问题。它是由组件中不同版本的 JXPath 引起的。(1.2 和 1.3)

于 2016-10-06T13:42:12.397 回答