[Gvsig_desarrolladores] Problemas con archivos ecw y gvsig 1.1.1 compilado en Linux.

Nacho Brodin ignacio.brodin en iver.es
Mie Feb 6 08:26:15 CET 2008


Hola.
No se si te voy a ayudar algo pero lo voy a intentar. Estoy casi convencido, 
como apuntas, que es un problema con la instalación de los binarios aunque no 
creo que haya ningún problema con los jar. Si con una distribución normal de 
gvSIG te funciona ya tienes mucho adelantado. En principio el workspace de 
los fuentes debería abrir raster sin problemas pero tengo que decir que con 
Fedora no está probado. Aseguráte de que hay dos puntos perfectamente 
configurados. En el cuadro Run de eclipse pestaña Argumentes mira el apartado 
VM arguments la variable -Djava.library.path. Debe tener la ruta a tus 
binarios. Creo que usa una variable puedes cambiarla por la ruta a "piñón" 
por si no estuviera bien definida. Si le pusieras la ruta de los binarios de 
tu distribución de gvSIG (y no la del binaries) debería funcionar. Luego en 
la pestaña de Environment está o debe estar la variable LD_LIBRARY_PATH con 
la misma ruta, asegurate que esté bien puesta e igual que la otra. 

Intenta abrir raster primero desde gvSIG lanzado desde tu workspace (como bien 
haces). Hasta que no te funcione no pruebes con tu código porque sino no 
sabrás si el error es de los fuentes que te has bajado o tu código

Otro tema es la forma en la que creas un driver. No deberías tener que 
instanciar un driver directamente, pideselo al DriverManager. 

Saludos.

On Tuesday 05 February 2008 20:07:18 Vanesa Hernández wrote:
> Hola.
>
> Estoy intentando cargar unos ecw en gvsig pero me lanza una excepción,
> estoy en Fedora Core 6, con Eclipse 3.2.0 y los fuentes de gvsig1.1.1.
>
> El código es el siguiente:
>
> CmsRasterDriver driver = new CmsRasterDriver();
> driver.setProjection(mapCtrl.getProjection());
> File carpetaECW = new File("/home/Vanesa/java/datos/ortofotos/" +
> strNum.toString() +"/");
> File archivo;
> if( carpetaECW.exists())
> {
> String[] listaArchivos = carpetaECW.list();
> FLyrRaster lyr;
> for(int i=0;i< listaArchivos.length; i++)
> {
>   if(listaArchivos[i].endsWith("ecw"))
> {
> archivo = new File(carpetaECW.getAbsolutePath() + listaArchivos[i]);
>
> driver.open(archivo);
> //La excepción se lanza en la línea de abajo
> lyr = LayerFactory.createLayer(listaArchivos[i], driver, archivo,
> mapCtrl.getProjection());
>
> if (lyr != null)
> {
> lyr.setVisible(true);
> mapCtrl.getMapContext().getLayers().addLayer(lyr);
> }
> }
> }
> }
>
> Y la traza de la excepción es:
>
> Abriendo /home/Vanesa/java/datos/ortofotos/77-3o5-07711.ecw
> Extension not supported!!!
> com.iver.cit.gvsig.fmap.DriverException:
> com.iver.cit.gvsig.fmap.drivers.DriverIOException: java.io.IOException:
> Formato no valido
> at
> com.iver.cit.gvsig.fmap.layers.LayerFactory.createLayer(LayerFactory.java
>
> :404)
>
> at com.iver.cit.gvsig.ortofotosCHD.LoadOrtofotosExtension.execute(
> LoadOrtofotosExtension.java:69)
> at com.iver.andami.plugins.ExtensionDecorator.execute(
> ExtensionDecorator.java:88)
> at com.iver.andami.ui.mdiFrame.MDIFrame.actionPerformed(MDIFrame.java:616)
> at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
> at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java
>
> :2169)
>
> at javax.swing.DefaultButtonModel.fireActionPerformed(
> DefaultButtonModel.java:420)
> at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
> at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
> at
> javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1051)
> at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(
> BasicMenuItemUI.java:1092)
> at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
> at java.awt.Component.processMouseEvent(Component.java:5517)
> at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
> at java.awt.Component.processEvent(Component.java:5282)
> at java.awt.Container.processEvent(Container.java:1966)
> at java.awt.Component.dispatchEventImpl(Component.java:3984)
> at java.awt.Container.dispatchEventImpl(Container.java:2024)
> at java.awt.Component.dispatchEvent(Component.java:3819)
> at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
> at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
> at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
> at java.awt.Container.dispatchEventImpl(Container.java:2010)
> at java.awt.Component.dispatchEvent(Component.java:3819)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
> at com.iver.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java
>
> :58)
>
> at java.awt.EventDispatchThread.pumpOneEventForHierarchy(
> EventDispatchThread.java:242)
> at java.awt.EventDispatchThread.pumpEventsForHierarchy(
> EventDispatchThread.java:163)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
> at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
> Caused by: com.iver.cit.gvsig.fmap.drivers.DriverIOException:
> java.io.IOException: Formato no valido
> at com.iver.cit.gvsig.fmap.layers.RasterFileAdapter.start(
> RasterFileAdapter.java:100)
> at com.iver.cit.gvsig.fmap.layers.FLyrRaster.load(FLyrRaster.java:207)
> at
> com.iver.cit.gvsig.fmap.layers.LayerFactory.createLayer(LayerFactory.java
>
> :402)
>
> ... 30 more
> Caused by: java.io.IOException: Formato no valido
> at com.iver.cit.gvsig.fmap.drivers.raster.CmsRasterDriver.initialize(
> CmsRasterDriver.java:152)
> at com.iver.cit.gvsig.fmap.layers.RasterFileAdapter.start(
> RasterFileAdapter.java:96)
> ... 32 more
> DEBUG [AWT-EventQueue-1] (MDIFrame.java:991) - Memoria total: 17 MB
> DEBUG [AWT-EventQueue-1] (MDIFrame.java:991) - Memoria total: 17 MB
>
> Esta parte de código me tiene algo confundida, el resto del programa lo he
> hecho siguiendo el tutorial para crear una extensión desde 0 que hay en la
> web de gvsig, pero no he encontrado ningún ejemplo sobre cargar un raster
> (o un ecw más concretamente).
>
> También me he planteado que sea algún problema de librerías, porque cuando
> ejecuto el gvsig desde Eclipse e intento abrir una imagen (he probado con
> un ecw y un jpg) directamente desde el gvsig me lanza lo siguiente:
>
> Error no capturado por el usuario
> java.lang.NullPointerException
>     at com.iver.cit.gvsig.AddLayer.loadFileLayers(AddLayer.java:351)
>     at com.iver.cit.gvsig.AddLayer.addLayers(AddLayer.java:463)
>     at com.iver.cit.gvsig.AddLayer.execute(AddLayer.java:194)
>     at com.iver.andami.plugins.ExtensionDecorator.execute(
> ExtensionDecorator.java:88)
>     at com.iver.andami.ui.mdiFrame.MDIFrame.actionPerformed(MDIFrame.java
>
> :616)
>
>     at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java
>
> :1849)
>
>     at javax.swing.AbstractButton$Handler.actionPerformed(
> AbstractButton.java:2169)
>     at javax.swing.DefaultButtonModel.fireActionPerformed(
> DefaultButtonModel.java:420)
>     at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java
>
> :258)
>
>     at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(
> BasicButtonListener.java:236)
>     at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java
>
> :231)
>
>     at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java
>
> :231)
>
>     at java.awt.Component.processMouseEvent(Component.java:5517)
>     at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
>     at java.awt.Component.processEvent(Component.java:5282)
>     at java.awt.Container.processEvent(Container.java:1966)
>     at java.awt.Component.dispatchEventImpl(Component.java:3984)
>     at java.awt.Container.dispatchEventImpl(Container.java:2024)
>     at java.awt.Component.dispatchEvent(Component.java:3819)
>     at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java
>
> :4212)
>
>     at
> java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892) at
> java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822) at
> java.awt.Container.dispatchEventImpl(Container.java:2010)
>     at java.awt.Window.dispatchEventImpl(Window.java:1791)
>     at java.awt.Component.dispatchEvent(Component.java:3819)
>     at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
>     at com.iver.andami.ui.AndamiEventQueue.dispatchEvent(
> AndamiEventQueue.java:58)
>     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(
> EventDispatchThread.java:242)
>     at java.awt.EventDispatchThread.pumpEventsForHierarchy(
> EventDispatchThread.java:163)
>     at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at
> java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
>
> He cambiado las librerías que había en binaries/Linux por las que traía un
> gvsig1.1.1 instalado (bajado directamente de la web) y he cambiado los .jar
> que tenían "ecw" en el nombre (algunos del código fuente sí eran más
> pequeños que los del instalado) pero sigue igual.
>
> También sé que el fichero ecw no está corrupto porque con el gvsig
> instalado se abre sin problemas.
>
> Ya no se me ocurre qué más probar. ¿Alguna idea?
>
> Muchas gracias.
> Vanesa Hernández.



-- 
Nacho Brodin
Equipo de desarrollo de gvSIG

Este mensaje y sus archivos son confidenciales. No está permitida su reproducción o distribución sin la autorización expresa de "IVER Tecnologías de la Información". Si usted no es el destinatario previsto, queda desautorizado cualquier uso, acceso o copia de este mensaje. Si ha recibido este mensaje por error, por favor bórrelo e infórmenos por esta misma vía.





Más información sobre la lista de distribución gvSIG_desarrolladores