gvSIG bugs #4525
Updated by Joaquín del Cerro Murciano almost 9 years ago
Salta al intentar crear una tabla DBF.
El script incluye la parte de las librerías de scripting que utiliza:
<pre>
# encoding: utf-8
import os
import time
import sys
import StringIO
import random
from java.util.prefs import Preferences
from java.awt import Color
from java.io import File
from java.lang import Throwable, RuntimeException
from org.gvsig.app import ApplicationLocator
from org.gvsig.fmap.dal.feature import FeatureType
from org.gvsig.fmap.mapcontext import MapContextLocator
from org.gvsig.andami import Utilities
from org.gvsig.fmap.crs import CRSFactory
from org.gvsig.app.project.documents.table import TableManager
from org.gvsig.fmap.geom import Geometry
from org.gvsig.app.project.documents.view import DefaultViewDocument
from org.gvsig.scripting.app.extension import ScriptingExtension
LOGGER_INFO=ScriptingExtension.INFO
LOGGER_WARN=ScriptingExtension.WARN
LOGGER_ERROR=ScriptingExtension.ERROR
import gvsig
def copyToDynObject(values, target):
keys = values.keys()
definition = target.getDynClass();
fields = definition.getDynFields();
for field in fields:
name = field.getName()
for k in keys:
if k.lower() == name.lower():
value = values[k]
target.setDynValue(name, value)
print "dyncopy:", name, value
break
def createTable_1(schema, servertype, tableType=None, **parameters):
"""Creates a new Table document"""
if tableType == None:
tableType = servertype
servertype = "FilesystemExplorer"
application = ApplicationLocator.getManager()
datamanager = application.getDataManager()
server_parameters = datamanager.createServerExplorerParameters(servertype)
copyToDynObject(parameters, server_parameters)
server = datamanager.openServerExplorer(servertype, server_parameters)
store_parameters = server.getAddParameters(tableType)
copyToDynObject(parameters, store_parameters)
store_parameters.setDefaultFeatureType(schema())
server.add(tableType, store_parameters, True)
store = datamanager.openStore(tableType, store_parameters)
return store
def main(*args):
sch = gvsig.createFeatureType()
sch.append('ID','STRING',15)
sch.append('COUNT','INTEGER',20)
filename = gvsig.getTempFile("tabla", ".dbf")
# gvsig.createTable(...)
tabla = createTable_1(
sch,
"FilesystemExplorer",
"DBF",
DbfFile=filename
)
gvsig.loadDBF(filename)
return
</pre>
Consola:
<pre>
org.gvsig.fmap.dal.exception.ValidateDataParametersException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: Checks parameters in <script> at line number 70org.gvsig.scripting.ExecuteErrorException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: Checks parameters in <script> at line number 70
at org.gvsig.scripting.impl.DefaultScriptingScript.invokeFunction(DefaultScriptingScript.java:550)
at org.gvsig.scripting.impl.DefaultScriptingScript.run(DefaultScriptingScript.java:520)
at org.gvsig.scripting.impl.DefaultScriptingScript$ScriptTask.run(DefaultScriptingScript.java:664)
Caused by: javax.script.ScriptException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: Checks parameters in <script> at line number 70
at org.python.jsr223.MyPyScriptEngine.scriptException(MyPyScriptEngine.java:209)
at org.python.jsr223.MyPyScriptEngine.invokeFunction(MyPyScriptEngine.java:138)
at org.gvsig.scripting.impl.DefaultScriptingScript.invokeFunction(DefaultScriptingScript.java:532)
... 2 more
Caused by: Traceback (most recent call last):
File "<script>", line 70, in main
File "<script>", line 53, in createTable_1
at org.gvsig.fmap.dal.impl.DefaultDataManager.openServerExplorer(DefaultDataManager.java:320)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
org.gvsig.fmap.dal.exception.ValidateDataParametersException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: Checks parameters
</pre>
El script incluye la parte de las librerías de scripting que utiliza:
<pre>
# encoding: utf-8
import os
import time
import sys
import StringIO
import random
from java.util.prefs import Preferences
from java.awt import Color
from java.io import File
from java.lang import Throwable, RuntimeException
from org.gvsig.app import ApplicationLocator
from org.gvsig.fmap.dal.feature import FeatureType
from org.gvsig.fmap.mapcontext import MapContextLocator
from org.gvsig.andami import Utilities
from org.gvsig.fmap.crs import CRSFactory
from org.gvsig.app.project.documents.table import TableManager
from org.gvsig.fmap.geom import Geometry
from org.gvsig.app.project.documents.view import DefaultViewDocument
from org.gvsig.scripting.app.extension import ScriptingExtension
LOGGER_INFO=ScriptingExtension.INFO
LOGGER_WARN=ScriptingExtension.WARN
LOGGER_ERROR=ScriptingExtension.ERROR
import gvsig
def copyToDynObject(values, target):
keys = values.keys()
definition = target.getDynClass();
fields = definition.getDynFields();
for field in fields:
name = field.getName()
for k in keys:
if k.lower() == name.lower():
value = values[k]
target.setDynValue(name, value)
print "dyncopy:", name, value
break
def createTable_1(schema, servertype, tableType=None, **parameters):
"""Creates a new Table document"""
if tableType == None:
tableType = servertype
servertype = "FilesystemExplorer"
application = ApplicationLocator.getManager()
datamanager = application.getDataManager()
server_parameters = datamanager.createServerExplorerParameters(servertype)
copyToDynObject(parameters, server_parameters)
server = datamanager.openServerExplorer(servertype, server_parameters)
store_parameters = server.getAddParameters(tableType)
copyToDynObject(parameters, store_parameters)
store_parameters.setDefaultFeatureType(schema())
server.add(tableType, store_parameters, True)
store = datamanager.openStore(tableType, store_parameters)
return store
def main(*args):
sch = gvsig.createFeatureType()
sch.append('ID','STRING',15)
sch.append('COUNT','INTEGER',20)
filename = gvsig.getTempFile("tabla", ".dbf")
# gvsig.createTable(...)
tabla = createTable_1(
sch,
"FilesystemExplorer",
"DBF",
DbfFile=filename
)
gvsig.loadDBF(filename)
return
</pre>
Consola:
<pre>
org.gvsig.fmap.dal.exception.ValidateDataParametersException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: Checks parameters in <script> at line number 70org.gvsig.scripting.ExecuteErrorException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: Checks parameters in <script> at line number 70
at org.gvsig.scripting.impl.DefaultScriptingScript.invokeFunction(DefaultScriptingScript.java:550)
at org.gvsig.scripting.impl.DefaultScriptingScript.run(DefaultScriptingScript.java:520)
at org.gvsig.scripting.impl.DefaultScriptingScript$ScriptTask.run(DefaultScriptingScript.java:664)
Caused by: javax.script.ScriptException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: Checks parameters in <script> at line number 70
at org.python.jsr223.MyPyScriptEngine.scriptException(MyPyScriptEngine.java:209)
at org.python.jsr223.MyPyScriptEngine.invokeFunction(MyPyScriptEngine.java:138)
at org.gvsig.scripting.impl.DefaultScriptingScript.invokeFunction(DefaultScriptingScript.java:532)
... 2 more
Caused by: Traceback (most recent call last):
File "<script>", line 70, in main
File "<script>", line 53, in createTable_1
at org.gvsig.fmap.dal.impl.DefaultDataManager.openServerExplorer(DefaultDataManager.java:320)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
org.gvsig.fmap.dal.exception.ValidateDataParametersException: org.gvsig.fmap.dal.exception.ValidateDataParametersException: Checks parameters
</pre>