I have problems getting the sample from the PDF Manual in section "5.36.2 Weighing imported entities by attribute" to work.
I have the following CSV file "cities.ent.csv":
- Code: Select all
name,population
New York,8274527
Los Angeles,3834340
San Francisco,764976
and the follwoing benerator xml script:
- Code: Select all
<generate type="address" count="100" consumer="ConsoleExporter">
<variable name="city_data" source="cities.ent.csv"
distribution="weighted[population]"/>
<id name="id" type="long" />
<attribute name="city" script="city_data.name"/>
</generate>
When I execute the script with Maven I got the following exception:
- Code: Select all
[INFO] --- maven-benerator-plugin:0.7.4:generate (default-cli) ---
17:00:43,865 WARN (main) [org.databene.commons.version.VersionInfo] Version number file 'org/databene/dbsanity/version.properties' not found, falling back to POM
17:00:43,874 WARN (main) [org.databene.commons.version.VersionInfo] Version number file 'org/databene/gui/version.properties' not found, falling back to POM
17:00:43,881 INFO (main) [org.databene.CONFIG] Running file Y:\work\mlp\BAP\workspace\bap-testdata\benerator.xml
17:00:43,881 INFO (main) [org.databene.CONFIG] Benerator 0.7.4 build 1925
17:00:43,881 INFO (main) [org.databene.CONFIG] Java version 1.6.0_22
17:00:43,881 INFO (main) [org.databene.CONFIG] JVM Java HotSpot(TM) 64-Bit Server VM 17.1-b03 (Sun Microsystems Inc.)
17:00:43,881 INFO (main) [org.databene.CONFIG] OS Windows 7 6.1 (amd64)
17:00:43,881 INFO (main) [org.databene.CONFIG] Installed JSR 223 Script Engines:
17:00:43,885 INFO (main) [org.databene.CONFIG] - Mozilla Rhino[js, rhino, JavaScript, javascript, ECMAScript, ecmascript]
17:00:43,885 INFO (main) [org.databene.CONFIG] Max heap size: 455 MB
17:00:44,255 INFO (main) [org.databene.task.runner.PagedTaskRunner] Running task GenerateAndConsumeTask(address) 100 times with page size 1 in a single thread
17:00:44,264 ERROR (main) [org.databene.benerator.engine.statement.GenerateOrIterateStatement] Error in execution of task GenerateAndConsumeTask
java.lang.NumberFormatException: For input string: "population"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
at java.lang.Double.parseDouble(Double.java:510)
at org.databene.benerator.csv.CSVGeneratorUtil.parseFile(CSVGeneratorUtil.java:71)
at org.databene.benerator.csv.CSVGeneratorUtil.parseFile(CSVGeneratorUtil.java:59)
at org.databene.benerator.sample.WeightedCSVSampleGenerator.init(WeightedCSVSampleGenerator.java:128)
at org.databene.benerator.composite.AbstractGeneratorComponent.init(AbstractGeneratorComponent.java:63)
at org.databene.benerator.composite.AbstractGeneratorComponent.prepare(AbstractGeneratorComponent.java:59)
at org.databene.benerator.engine.statement.GenerateAndConsumeTask.prepareStatements(GenerateAndConsumeTask.java:260)
at org.databene.benerator.engine.statement.GenerateAndConsumeTask.init(GenerateAndConsumeTask.java:112)
at org.databene.benerator.engine.statement.GenerateAndConsumeTask.execute(GenerateAndConsumeTask.java:172)
at org.databene.task.TaskProxy.execute(TaskProxy.java:58)
at org.databene.task.StateTrackingTaskProxy.execute(StateTrackingTaskProxy.java:52)
at org.databene.task.runner.SingleThreadedTaskRunner.runWithoutPage(SingleThreadedTaskRunner.java:56)
at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:46)
at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:141)
at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:101)
at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:169)
at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:92)
at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:58)
at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:45)
at org.databene.benerator.engine.statement.TimedGeneratorStatement.execute(TimedGeneratorStatement.java:66)
at org.databene.benerator.engine.statement.SequentialStatement.executeSubStatements(SequentialStatement.java:51)
at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:46)
at org.databene.benerator.engine.BeneratorRootStatement.execute(BeneratorRootStatement.java:62)
at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:127)
at org.databene.benerator.engine.DescriptorRunner.runWithoutShutdownHook(DescriptorRunner.java:108)
at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:101)
at org.databene.benerator.main.Benerator.runFile(Benerator.java:88)
at org.databene.benerator.main.Benerator.runFromCommandLine(Benerator.java:76)
at org.databene.benerator.main.Benerator.main(Benerator.java:69)
at org.databene.benerator.maven.BeneratorMojo.execute(BeneratorMojo.java:96)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[INFO] ------------------------------------------------------------------------
Furthermore if I change the
- Code: Select all
distribution="weighted[population]"
- Code: Select all
distribution="random"
- Code: Select all
17:07:24,759 ERROR (main) [org.databene.benerator.engine.statement.GenerateOrIterateStatement] Error in execution of task address
org.databene.script.ScriptException: Error in script: city_data.name
at org.databene.benerator.script.BeneratorScript.evaluate(BeneratorScript.java:60)
at org.databene.script.ScriptUtil.execute(ScriptUtil.java:74)
at org.databene.benerator.primitive.ScriptGenerator.generate(ScriptGenerator.java:60)
at org.databene.benerator.wrapper.GeneratorWrapper.generateFromSource(GeneratorWrapper.java:69)
at org.databene.benerator.wrapper.SingleSourceArrayGenerator.generate(SingleSourceArrayGenerator.java:83)
at org.databene.benerator.composite.SimplifyingSingleSourceArrayGenerator.generate(SimplifyingSingleSourceArrayGenerator.java:51)
at org.databene.benerator.composite.AbstractComponentBuilder.execute(AbstractComponentBuilder.java:50)
at org.databene.benerator.engine.statement.GenerateAndConsumeTask.execute(GenerateAndConsumeTask.java:181)
at org.databene.task.TaskProxy.execute(TaskProxy.java:58)
at org.databene.task.StateTrackingTaskProxy.execute(StateTrackingTaskProxy.java:52)
at org.databene.task.runner.SingleThreadedTaskRunner.runWithoutPage(SingleThreadedTaskRunner.java:56)
at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:46)
at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:141)
at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:101)
at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:169)
at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:92)
at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:58)
at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:45)
at org.databene.benerator.engine.statement.TimedGeneratorStatement.execute(TimedGeneratorStatement.java:66)
at org.databene.benerator.engine.statement.SequentialStatement.executeSubStatements(SequentialStatement.java:51)
at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:46)
at org.databene.benerator.engine.BeneratorRootStatement.execute(BeneratorRootStatement.java:62)
at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:127)
at org.databene.benerator.engine.DescriptorRunner.runWithoutShutdownHook(DescriptorRunner.java:108)
at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:101)
at org.databene.benerator.main.Benerator.runFile(Benerator.java:88)
at org.databene.benerator.main.Benerator.runFromCommandLine(Benerator.java:76)
at org.databene.benerator.main.Benerator.main(Benerator.java:69)
at org.databene.benerator.maven.BeneratorMojo.execute(BeneratorMojo.java:96)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.databene.commons.ConfigurationError: Field not found: 'java.lang.String.name'
at org.databene.commons.ExceptionMapper.configurationException(ExceptionMapper.java:133)
at org.databene.commons.BeanUtil.getField(BeanUtil.java:1152)
at org.databene.commons.accessor.FeatureAccessor.getValue(FeatureAccessor.java:112)
at org.databene.commons.accessor.FeatureAccessor.getValue(FeatureAccessor.java:89)
at org.databene.script.QNExpression.readField(QNExpression.java:93)
at org.databene.script.QNExpression.resolveNamePart(QNExpression.java:86)
at org.databene.script.QNExpression.evaluate(QNExpression.java:66)
at org.databene.benerator.script.BeneratorScript.evaluate(BeneratorScript.java:58)
... 49 more
Caused by: java.lang.NoSuchFieldException: name
at java.lang.Class.getField(Class.java:1520)
at org.databene.commons.BeanUtil.getField(BeanUtil.java:1150)
... 55 more
17:07:24,761 ERROR (main) [org.databene.benerator.engine.statement.GenerateOrIterateStatement] Error in execution of task GenerateAndConsumeTask
java.lang.RuntimeException: org.databene.script.ScriptException: Error in script: city_data.name
at org.databene.commons.ErrorHandler.handleError(ErrorHandler.java:91)
at org.databene.benerator.engine.statement.GenerateAndConsumeTask.execute(GenerateAndConsumeTask.java:198)
at org.databene.task.TaskProxy.execute(TaskProxy.java:58)
at org.databene.task.StateTrackingTaskProxy.execute(StateTrackingTaskProxy.java:52)
at org.databene.task.runner.SingleThreadedTaskRunner.runWithoutPage(SingleThreadedTaskRunner.java:56)
at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:46)
at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:141)
at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:101)
at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:169)
at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:92)
at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:58)
at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:45)
at org.databene.benerator.engine.statement.TimedGeneratorStatement.execute(TimedGeneratorStatement.java:66)
at org.databene.benerator.engine.statement.SequentialStatement.executeSubStatements(SequentialStatement.java:51)
at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:46)
at org.databene.benerator.engine.BeneratorRootStatement.execute(BeneratorRootStatement.java:62)
at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:127)
at org.databene.benerator.engine.DescriptorRunner.runWithoutShutdownHook(DescriptorRunner.java:108)
at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:101)
at org.databene.benerator.main.Benerator.runFile(Benerator.java:88)
at org.databene.benerator.main.Benerator.runFromCommandLine(Benerator.java:76)
at org.databene.benerator.main.Benerator.main(Benerator.java:69)
at org.databene.benerator.maven.BeneratorMojo.execute(BeneratorMojo.java:96)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.databene.script.ScriptException: Error in script: city_data.name
at org.databene.benerator.script.BeneratorScript.evaluate(BeneratorScript.java:60)
at org.databene.script.ScriptUtil.execute(ScriptUtil.java:74)
at org.databene.benerator.primitive.ScriptGenerator.generate(ScriptGenerator.java:60)
at org.databene.benerator.wrapper.GeneratorWrapper.generateFromSource(GeneratorWrapper.java:69)
at org.databene.benerator.wrapper.SingleSourceArrayGenerator.generate(SingleSourceArrayGenerator.java:83)
at org.databene.benerator.composite.SimplifyingSingleSourceArrayGenerator.generate(SimplifyingSingleSourceArrayGenerator.java:51)
at org.databene.benerator.composite.AbstractComponentBuilder.execute(AbstractComponentBuilder.java:50)
at org.databene.benerator.engine.statement.GenerateAndConsumeTask.execute(GenerateAndConsumeTask.java:181)
... 42 more
Caused by: org.databene.commons.ConfigurationError: Field not found: 'java.lang.String.name'
at org.databene.commons.ExceptionMapper.configurationException(ExceptionMapper.java:133)
at org.databene.commons.BeanUtil.getField(BeanUtil.java:1152)
at org.databene.commons.accessor.FeatureAccessor.getValue(FeatureAccessor.java:112)
at org.databene.commons.accessor.FeatureAccessor.getValue(FeatureAccessor.java:89)
at org.databene.script.QNExpression.readField(QNExpression.java:93)
at org.databene.script.QNExpression.resolveNamePart(QNExpression.java:86)
at org.databene.script.QNExpression.evaluate(QNExpression.java:66)
at org.databene.benerator.script.BeneratorScript.evaluate(BeneratorScript.java:58)
... 49 more
Caused by: java.lang.NoSuchFieldException: name
at java.lang.Class.getField(Class.java:1520)
at org.databene.commons.BeanUtil.getField(BeanUtil.java:1150)
... 55 more
Any ideas what I made wrong?
Greetings
Michael
