[Gvsig_desarrolladores] Carga de capa Raster

Alvaro Zabala azabala en gmail.com
Jue Nov 9 09:43:16 CET 2006


public static GeoRasterFile openFile(IProjection proj, String fName) {
        String ext = fName.toLowerCase().substring(fName.lastIndexOf
('.')+1);
        GeoRasterFile grf = null;
        // TODO NotSupportedExtensionException
        if (!supportedExtensions.containsKey(ext)) return grf;
        /**/
        Class clase = (Class) supportedExtensions.get(ext);
        Class [] args = {IProjection.class, String.class};
        try {
            Constructor hazNuevo = clase.getConstructor(args);
            Object [] args2 = {proj, fName};
            grf = (GeoRasterFile) hazNuevo.newInstance(args2);
            grf.setFileSize(new File(fName).length());
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return grf;
    }


A falta de poder debugear, tiene toda la pinta de que el null pointer viene
de este metodo, que grf se devuelve como null (debido a que se produzca
alguna de las excepciones anteriores)

¿En el stack trace no sale ninguna de estas excepciones capturadas?



2006/11/9, mj.gomez en telvent.abengoa.com <mj.gomez en telvent.abengoa.com>:
>
>
> Hola, pretendía incluir la traza de la excepción pero se ve que se me
> olvidó. De todas las opciones que me comentas, creo que no está ocurriendo
> ninguna, la ruta "c:\ecw" existe en el servidor, así que no sé qué más puede
> ser. La traza del error es la siguiente:
>
> Excepcion generica:  java.lang.NullPointerException: null
> com.iver.cit.gvsig.fmap.drivers.raster.CmsRasterDriver.createPxRaster(
> CmsRasterDriver.java:146)
> com.iver.cit.gvsig.fmap.drivers.raster.CmsRasterDriver.initialize(
> CmsRasterDriver.java:129)
> com.iver.cit.gvsig.fmap.layers.RasterFileAdapter.start(
> RasterFileAdapter.java:96)
> com.iver.cit.gvsig.fmap.layers.FLyrRaster.load(FLyrRaster.java:197)
> com.iver.cit.gvsig.fmap.layers.LayerFactory.createLayer(LayerFactory.java:263)
>     es.chg.sig.gui.wizards.CapasWizard.getLayer(CapasWizard.java:218)
> com.iver.cit.gvsig.AddLayer.addLayers(AddLayer.java:333)
> com.iver.cit.gvsig.AddLayer.execute(AddLayer.java:174)
> com.iver.andami.plugins.ExtensionDecorator.execute(ExtensionDecorator.java:87)
>     com.iver.andami.ui.mdiFrame.MDIFrame.actionPerformed(MDIFrame.java:608)
>     javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
>     javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(
> AbstractButton.java:1839)
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
>     javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
>     javax.swing.plaf.basic.BasicButtonListener.mouseReleased(
> BasicButtonListener.java:245)
> java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
>     java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
>     java.awt.Component.processMouseEvent(Component.java:5100)
> java.awt.Component.processEvent(Component.java:4897)
> java.awt.Container.processEvent(Container.java:1569)
> java.awt.Component.dispatchEventImpl(Component.java:3615)
> java.awt.Container.dispatchEventImpl(Container.java:1627)
> java.awt.Component.dispatchEvent(Component.java:3477)
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
>     java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
>     java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
> java.awt.Container.dispatchEventImpl(Container.java:1613)
> java.awt.Window.dispatchEventImpl(Window.java:1606)
> java.awt.Component.dispatchEvent(Component.java:3477)
> java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
> com.iver.andami.ui.AndamiEventQueue.dispatchEvent(AndamiEventQueue.java:58)
>     java.awt.EventDispatchThread.pumpOneEventForHierarchy(
> EventDispatchThread.java:201)
> java.awt.EventDispatchThread.pumpEventsForHierarchy(
> EventDispatchThread.java:151)     java.awt.EventDispatchThread.pumpEvents(
> EventDispatchThread.java:145)     java.awt.EventDispatchThread.pumpEvents(
> EventDispatchThread.java:137)     java.awt.EventDispatchThread.run(
> EventDispatchThread.java:100)
>
> Saludos y gracias
>
>
>
> Nacho Brodin <brodin_ign en gva.es>
> Nacho Brodin
> Enviado por: gvsig_desarrolladores-bounces en runas.cap.gva.es
> 09/11/2006 08:12
> Por favor, responda a Lista de Desarrolladores de gvSIG
>  Para: Lista de Desarrolladores de gvSIG <
> gvsig_desarrolladores en runas.cap.gva.es> cc:
>  Asunto: Re: [Gvsig_desarrolladores] Carga de capa Raster
>
>
>
> Hola, ese código puede devolver null por varias razones. O el formato que
> intentas abrir no está soportado, o el raster no existe donde le dices que
>
> está, o las librerías Jni (jar o nativas) no están accesibles, o el raster
>
> está corrupto (no se si me dejo algún caso más). No se si te muestra algún
>
> mensaje de error cuando devuelve este null, quizás esto te de alguna
> pista.
> Después de hacer esta llamada puede salirte algún mensaje del tipo "Error
> en
> GdalOpen", "Extension not supported" o una traza de una excepción. El
> error
> más común de todos es que o no encuentra los jar de Jni o los binarios de
> jgdal, jecw o jmrsid no están accesibles. A ver si con esto lo arreglas o
> nos
> da alguna pistilla más y te seguimos ayudando.
>
> Saludos.
>
> Nacho Brodin
>
> El Miércoles 08 Noviembre 2006 18:06, mj.gomez en telvent.abengoa.comescribió:
> > Buenas tardes, estoy intentando abrir una capa ráster. Para ello tengo
> el
> > siguiente código:
> >
> > CmsRasterDriver driver = new CmsRasterDriver();
> >         driver.setProjection(proj);
> >         driver.open(fich);
> >         if (driver instanceof RasterDriver)
> >         {
> >                 layer = LayerFactory.createLayer(layerCHG.getNombre(),
> > (RasterDriver)driver, fich, proj);
> >
> >         }
> >
> > El método create layer, hace una llamada a initialize de la clase
> > CmsRasterDriver y dentro a openFile de GeoRasterFile. Ese método
> devuelve
> > a la variable rasterFile de CmsRasterDriver un null y por eso me falla
> la
> > siguiente instrucción de createPxRaster.
> >
> > El código que me devuelve null es el siguiente:
> >
> >         public static GeoRasterFile openFile(IProjection proj, String
> > fName) {
> >                 String ext =
> > fName.toLowerCase().substring(fName.lastIndexOf('.')+1);
> >                 GeoRasterFile grf = null;
> >                 // TODO NotSupportedExtensionException
> >                 if (!supportedExtensions.containsKey(ext)) return grf;
> >                 /**/
> >                 Class clase = (Class) supportedExtensions.get(ext);
> >                 Class [] args = {IProjection.class, String.class};
> >                 try {
> >                         Constructor hazNuevo = clase.getConstructor
> (args);
> >                         Object [] args2 = {proj, fName};
> >                         grf = (GeoRasterFile) hazNuevo.newInstance
> (args2);
> >                 } catch (SecurityException e) {
> >                         // TODO Auto-generated catch block
> >                         e.printStackTrace();
> >                 } catch (NoSuchMethodException e) {
> >                         // TODO Auto-generated catch block
> >                         e.printStackTrace();
> >                 } catch (IllegalArgumentException e) {
> >                         // TODO Auto-generated catch block
> >                         e.printStackTrace();
> >                 } catch (InstantiationException e) {
> >                         // TODO Auto-generated catch block
> >                         e.printStackTrace();
> >                 } catch (IllegalAccessException e) {
> >                         // TODO Auto-generated catch block
> >                         e.printStackTrace();
> >                 } catch (InvocationTargetException e) {
> >                         // TODO Auto-generated catch block
> >                         e.printStackTrace();
> >                 }
> >
> >                 return grf;
> >         }
> >
> > A ver si sabeis que ocurre.
> > Saludos y gracias
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>
>
>


-- 
Alvaro Zabala Ordóñez

Teléfono: 954939528
Plaza de España, sector II.
SEVILLA
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20061109/50f44986/attachment.htm


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