[rules-users] Drools Planner: Exception on createSolver method
Geoffrey De Smet
ge0ffrey.spam at gmail.com
Mon Apr 12 12:52:39 EDT 2010
The environmentMode property is new on trunk.
It is not part of drools-planner (drools-solver at the time) 5.0.1 or
5.1.0.M1.
It will be part of 5.2.0.M2.
Note that a drools-core/compiler M2 snapshot is unstable at the moment
(that's why they call it trunk :).
What you can do - in theory - is combine drools-core/compiler 5.0.1 or
5.1.0.M1 with drools-planner 5.1.0.M2-SNAPSHOT (that's pretty stable atm
even if it's trunk).
With kind regards,
Geoffrey De Smet
dweppenaar schreef:
> Hi,
>
> I am new to Drools in general so please excuse my noobness with some of the
> concepts. I am in the process of creating a maintenance scheduling system.
> As Geoffrey suggested, I have based my application heavily on the curriculum
> course example included in the solver (planner) examples. I have created
> most of the classes used by the example and will be implementing my gui.
>
> I use an XmlSolverConfigurer to read the configuration from xml. The solver
> config xml path is correct as I get another exception due to the file not
> being found when I change the path. When the solver tries to load the xml
> configuration the following exception occurs:
>
> Exception in thread "AWT-EventQueue-0"
> com.thoughtworks.xstream.converters.ConversionException: environmentMode :
> environmentMode : environmentMode : environmentMode
> ---- Debugging information ----
> message : environmentMode : environmentMode
> cause-exception :
> com.thoughtworks.xstream.mapper.CannotResolveClassException
> cause-message : environmentMode : environmentMode
> class :
> org.drools.solver.config.localsearch.LocalSearchSolverConfig
> required-type :
> org.drools.solver.config.localsearch.LocalSearchSolverConfig
> line number : 12
> -------------------------------
> at
> com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:89)
> at
> com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:63)
> at
> com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:76)
> at
> com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:60)
> at
> com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:137)
> at
> com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:33)
> at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:923)
> at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:909)
> at com.thoughtworks.xstream.XStream.fromXML(XStream.java:853)
> at
> org.drools.solver.config.XmlSolverConfigurer.configure(XmlSolverConfigurer.java:68)
> at
> org.drools.solver.config.XmlSolverConfigurer.configure(XmlSolverConfigurer.java:59)
> at
> org.drools.solver.config.XmlSolverConfigurer.configure(XmlSolverConfigurer.java:52)
> at
> za.co.rgems.projects.imms.swing.gui.ImmsGui.createSolver(ImmsGui.java:95)
> at
> za.co.rgems.projects.imms.swing.gui.ImmsGui.createSolutionBusiness(ImmsGui.java:103)
> at
> za.co.rgems.projects.imms.swing.gui.ImmsGui.btnSolveActionPerformed(ImmsGui.java:76)
> at
> za.co.rgems.projects.imms.swing.gui.ImmsGui.access$000(ImmsGui.java:23)
> at
> za.co.rgems.projects.imms.swing.gui.ImmsGui$1.actionPerformed(ImmsGui.java:50)
> at
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
> at
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
> at
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
> at
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
> at
> javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
> at java.awt.Component.processMouseEvent(Component.java:6263)
> at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
> at java.awt.Component.processEvent(Component.java:6028)
> at java.awt.Container.processEvent(Container.java:2041)
> at java.awt.Component.dispatchEventImpl(Component.java:4630)
> at java.awt.Container.dispatchEventImpl(Container.java:2099)
> at java.awt.Component.dispatchEvent(Component.java:4460)
> at
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
> at
> java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
> at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
> at java.awt.Container.dispatchEventImpl(Container.java:2085)
> at java.awt.Window.dispatchEventImpl(Window.java:2475)
> at java.awt.Component.dispatchEvent(Component.java:4460)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
> at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
> at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
> at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
> at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
> at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
> Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException:
> environmentMode : environmentMode
> at
> com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:68)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:71)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:86)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:96)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:38)
> at
> com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:52)
> at
> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.determineType(AbstractReflectionConverter.java:347)
> at
> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:208)
> at
> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:162)
> at
> com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:82)
> ... 41 more
>
> Here is the contents of my XML configuration file:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <localSearchSolver>
> <environmentMode>REPRODUCIBLE</environmentMode>
> <scoreDrl>/za/co/rgems/projects/imms/drl/immsRules.drl</scoreDrl>
> <scoreDefinition>
> <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
> </scoreDefinition>
> <termination>
> <scoreAttained>0hard/-5000soft</scoreAttained>
> </termination>
>
> <startingSolutionInitializerClass>za.co.rgems.projects.imms.solution.initialiser.ImmsStartingSolutionInitialiser</startingSolutionInitializerClass>
> <finish>
> <maximumSecondsSpend>300</maximumSecondsSpend>
> </finish>
> <selector>
> <selector>
> <topSize>10</topSize>
> </selector>
> <selector>
>
> <moveFactoryClass>za.co.rgems.projects.imms.move.factory.MaintenanceSlotMoveFactory</moveFactoryClass>
> <relativeSelection>0.002</relativeSelection>
> </selector>
> <selector>
>
> <moveFactoryClass>za.co.rgems.projects.imms.move.factory.MaintenanceTaskSwitchFactory</moveFactoryClass>
> <relativeSelection>0.002</relativeSelection>
> </selector>
> <selector>
>
> <moveFactoryClass>za.co.rgems.projects.imms.move.factory.MaintenanceTechnicianChangeMoveFactory</moveFactoryClass>
> <relativeSelection>0.002</relativeSelection>
> </selector>
> <selector>
>
> <moveFactoryClass>za.co.rgems.projects.imms.move.factory.MotorChangeMoveFactory</moveFactoryClass>
> <relativeSelection>0.002</relativeSelection>
> </selector>
> </selector>
> <accepter>
> <completePropertyTabuSize>10</completePropertyTabuSize>
> <completeSolutionTabuSize>1500</completeSolutionTabuSize>
> </accepter>
> <forager>
> <foragerType>MAX_SCORE_OF_ALL</foragerType>
> </forager>
> </localSearchSolver>
>
> I am not sure why this occurs and I have also searched the forums/mailing
> list to no avail. I have been through the documentation on the configuration
> file as well as several of the example applications' config files, but fail
> to see what is the cause.
>
> Thank you in advance!
>
> Regards,
> De Ville Weppenaar
More information about the rules-users
mailing list