[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