commons configurationでのメモ XMLConfigurationでの出来事 2007/11/13
2007/11/14

Commons Configuration - Java Configuration API

org.apache.commons.configuration.XMLConfiguration
を使用していて、下記のような例外がでた場合には、

java.lang.IllegalArgumentException: prepareAdd: Passed in key must contain a whitespace!
at org.apache.commons.configuration.tree.xpath.XPathExpressionEngine.prepareAdd(XPathExpressionEngine.java:211)
at org.apache.commons.configuration.HierarchicalConfiguration.addPropertyDirect(HierarchicalConfiguration.java:303)
at org.apache.commons.configuration.AbstractHierarchicalFileConfiguration.addPropertyDirect(AbstractHierarchicalFileConfiguration.java:112)
at org.apache.commons.configuration.HierarchicalConfiguration.setProperty(HierarchicalConfiguration.java:545)
at org.apache.commons.configuration.AbstractHierarchicalFileConfiguration.setProperty(AbstractHierarchicalFileConfiguration.java:130)


ExpressionEngineをDefaultExpressionEngineにすると例外がでなくなった。

DefaultExpressionEngine defaultExpressionEngine = new DefaultExpressionEngine();
xmlConfiguration.setExpressionEngine(defaultExpressionEngine);


プログラムの他の実装で、

XPathExpressionEngine engine = new XPathExpressionEngine();
HierarchicalConfiguration.setDefaultExpressionEngine(engine);

している箇所があったので、それが影響したようだ。

: