[Gvsig_usuarios] problemas con geoBD
LUISA MARINA FERNANDEZ RUIZ
LuisaM.Fernandez en uclm.es
Jue Jul 12 14:33:05 CEST 2007
He vuelto a depurar: Cuando parsea la primera geometría el parseo lo realiza correctamente:
Clase: WkbParser2.java
método: protected IGeometry parseGeometry(ByteBuffer data)
Sentencia:
switch (realtype) { //donde realtype=6 y lo siguiente que ejecuta es:
case WKBConstants.wkbMultiPolygon:
result1 = ShapeFactory.createGeometry(parseMultiPolygon(data));
El parseo es correcto
El error se produce aquí:
Clase: Xtypes.java
//El tipo es Integer, y ejecuta lo siguiente:
if (metaData.getColumnType(fieldId) == Types.INTEGER)
val = ValueFactory.createValue(buf.getInt());
Cuando intenta obtener buf.getInt() salta la excepción.
Espero que os ayude y me podeis decir como lo puedo solucionar.
Muchas gracias por vuestro tiempo.
Saludos
________________________________
De: gvsig_usuarios-bounces en runas.cap.gva.es en nombre de Francisco José Peñarrubia
Enviado el: jue 12/07/2007 14:00
Para: Lista de Usuarios de gvSIG
Asunto: Re: [Gvsig_usuarios] problemas con geoBD
Hola.
Por favor, revisa el tipo de campo que da el fallo, y nos lo dices. Casi seguro que es eso.
Saludos, y gracias por tu colaboración.
LUISA MARINA FERNANDEZ RUIZ escribió:
He comprobado la tabla geometry_columns y sí que están las tablas con las que tengo que trabajar.
La codificación que utiliza mi base de datos es SQL_ASCII y antes con la versión 1.0 de gvsig y con la extJDBC sí que me funcionaba. De todos modos me he creado una base de datos de prueba y le he puesto codificación 'Latin 1' y me sigue apareciendo el mismo error.
Ya sé que en el log no aparece ninguna información, ya que no figura que haya saltado ninguna excepción.
Por eso lo que hice fue depurar el código para ver dónde podía estar el fallo. La salida de la consola es la siguiente:
SqlAux getFeatureIterator = SELECT ASBINARY(the_geom, 'XDR'), gid FROM barrios WHERE the_geom && GeometryFromText('LINESTRING(568724.3048155737 4283598.5, 622459.6326844261 4283598.5, 622459.6326844261 4337114.5, 568724.3048155737 4337114.5)', 23030)
java.nio.BufferUnderflowException
at java.nio.Buffer.nextGetIndex(Unknown Source)
at java.nio.HeapByteBuffer.getInt(Unknown Source)
at com.iver.cit.gvsig.fmap.drivers.XTypes.getValue(XTypes.java:150)
at com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisFeatureIterator.next(PostGisFeatureIterator.java:173)
at com.iver.cit.gvsig.fmap.operations.strategies.DBStrategy.draw(DBStrategy.java:156)
at com.iver.cit.gvsig.fmap.layers.FLyrVect.draw(FLyrVect.java:356)
at com.iver.cit.gvsig.fmap.layers.FLayers.draw(FLayers.java:592)
at com.iver.cit.gvsig.fmap.layers.FLayers.draw(FLayers.java:426)
at com.iver.cit.gvsig.fmap.MapContext.draw(MapContext.java:528)
at com.iver.cit.gvsig.fmap.MapControl$PaintingRequest.paint(MapControl.java:526)
at com.iver.cit.gvsig.fmap.MapControl$Drawer2$Worker.run(MapControl.java:627)
at java.lang.Thread.run(Unknown Source)
El fallo está en la clase PostGisFeatureIterator método next()cuando ejecuta:
Value val = XTypes.getValue(rs, fieldId);
Al intentar obtener el Value a través de la siguiente instrucción de la clase Xtypes
if (metaData.getColumnType(fieldId) == Types.INTEGER)
val = ValueFactory.createValue(buf.getInt());
se produce la excepción en la ejecución de buf.getInt().
No sé si esto te dará alguna idea de lo que está pasando.
Esque necesito conectar con postgis ya que estoy desarrollando una extensión que trabaja con esta base de datos.
Muchas gracias tu ayuda.
Saludos
________________________________
De: gvsig_usuarios-bounces en runas.cap.gva.es en nombre de Jose Manuel Vivó (Chema)
Enviado el: jue 12/07/2007 13:14
Para: Lista de Usuarios de gvSIG
Asunto: Re: [Gvsig_usuarios] problemas con geoBD
El Jueves 12 Julio 2007 12:49, LUISA MARINA FERNANDEZ RUIZ escribió:
Hola a todos!
Tengo la versión 1.0.2 de gvSIG y he intentado instalar la extensión geoBD
sin éxito, a pesar de que le he puesto mucho empeño.....
La instalación la realiza correctamente, además e incluido la librería
ojdbc14.jar en la ruta que se indica en el manual. El problema surge cuando
intento cargar una capa de mi base de datos postgis, ya que aparece la capa
en la vista actual pero con una 'x' en color rojo al lado, es decir, que no
ha cargado bien la capa. Curiosamente ocurre lo mismo si no tengo cargada
la librería ojdbc14.jar en la ruta indicada.¿Para qué se utiliza esta
librería? ¿Sin ella debería funcionar la extensión o es absolutamente
necesario que esté para que funcione?
Esta librería es el driver de Oracle para conectar a sus bases de datos. Para
conectarte con PostGis no es necesario.
Como no he conseguido que funcione la extensión he intentado volver a
trabajar con la antigua extensión 'extJDBC', pero me sigue dando el mismo
error: me carga la capa con una 'x' roja. Esto es muy extraño,.......
Alguien tiene alguna idea sobre qué puede estar pasando.
Pues puedes mirar un par de cosas:
- Enconding: ahora mismo gvSIG solo conecta con 'Latin1'
- geometry_columns: Comprueba que en esta tabla existe una entrada para la
tabla a la que intentas acceder.
Adjunto el fichero log.
Pues en este log no hay ninguna información útil sobre el error que te esta
pasando y no te puedo decir más.
En breve saldrá una nueva versión de la aplicación donde hemos repasado el
Driver de PostGIS. Puede que esta versión solucione tu problema.
Un Saludo.
Muchas gracias de antemano.
Saludos
--
=============
Jose Manuel Vivó (Chema)
Equipo de gvSIG
IVER T.I. S.A.
C/ Salamanca, 50-52
46005-Valencia
Tlf.+34963163400
Spain
www.iver.es <http://www.iver.es/>
www.gvsig.com <http://www.gvsig.com/>
________________________________
_______________________________________________
gvSIG_usuarios mailing list
gvSIG_usuarios en runas.cap.gva.es
http://runas.cap.gva.es/mailman/listinfo/gvsig_usuarios
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre : no disponible
Tipo : application/ms-tnef
Tamaño : 8813 bytes
Descripción: no disponible
Url : http://runas.cap.gva.es/pipermail/gvsig_usuarios/attachments/20070712/8b68b0fe/attachment-0001.bin
Más información sobre la lista de distribución gvSIG_usuarios