2016-09-26 78 views
0

我有两个Java组件。首先是分析MyTree对象并使用JXPathContext来删除任务。然后任务被发送到第二个。 第二个组件正在执行任务。在execuction我收到以下错误:JXPathException'没有写入方法'错误

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{ 
} 

你有任何想法,为什么我得到这个错误?

回答

0

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