使用Optaplanner和groovy的XStream错误

时间:2014-05-15 16:20:49

标签: groovy xstream optaplanner

我试图将Drool's Cookbook第8章中的简单Drools Planner示例改编为OptaPlanner 6.0.1.Final使用groovy(已经有maven的java版本),类和测试在一个groovy脚本中,在同一个文件夹中是solverConfig.xml和solverRules.drl,如何配置XmlSolverFactory以避免:

groovy technicianAssignationScript.groovy
Caught: com.thoughtworks.xstream.io.StreamException: Cannot create XmlPullParser
com.thoughtworks.xstream.io.StreamException: Cannot create XmlPullParser
        at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:56)
        at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1040)
        at org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:84)
        at org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:74)
        at org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:67)
        at org.optaplanner.core.config.solver.XmlSolverFactory$configure.call(Unknown Source)
        at BestAvailableTechnicianTest.findBestTechnician(technicianAssignationScript.groovy:294)
        at BestAvailableTechnicianTest$findBestTechnician.call(Unknown Source)
        at technicianAssignationScript.run(technicianAssignationScript.groovy:379)

我正在使用

groovy -v
Groovy Version: 2.3.0 JVM: 1.7.0_55 Vendor: Oracle Corporation OS: Linux

在脚本中有这种依赖关系:

@Grapes([
          @Grab("org.optaplanner:optaplanner-core:6.0.1.Final"),
          @Grab("junit:junit:4.4"),
          @Grab("org.optaplanner:optaplanner-benchmark:6.0.1.Final"),
          // @Grab("commons-lang:commons-lang-2.6"),
          @Grab("org.slf4j:slf4j-api:1.7.2"),
          @Grab("ch.qos.logback:logback-classic:1.0.9"),
          @Grab("com.thoughtworks.xstream:xstream:1.4.3"),
          @Grab("org.jdom:jdom:1.1.3"),
          @Grab("xpp3:xpp3_min:1.1.4c"),
          @Grab("xmlpull:xmlpull:1.1.3.1")
        ])

1 个答案:

答案 0 :(得分:0)

我在optaplanner master(6.1.0.Beta4)上使用xstream 1.4.7和xpp3_min 1.1.4c以及xmlpull 1.1.3.1。但IIRC,optaplanner 6.0.1使用的是xstream 1.4.3,它也应该可以正常工作。

尝试在xstream用户列表中提出这个问题:他们在那里回答了很多。