[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