[Gvsig_desarrolladores] Error al cargar extensiones en el arranque de gvSIG

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Jue Mar 8 14:36:15 CET 2018


El 2 de marzo de 2018, 9:47, Iago Alonso Alonso <ialonso en enxenio.es>
escribió:

> Hola, hace un tiempo realicé dos extensiones de edición y funcionaban, el
> problema es que no sé qué he podido cambiar y ahora ya no funcionan. El
> error que aparece en el log es:
>
> INFO main org.gvsig.tools.util.impl.DefaultServiceLoader - Loading
> interface org.gvsig.tools.library.Library implementations from
> 'org.gvsig.andami.plugins.PluginClassLoader en b73e7a
> (es.dicoruna.giseiel.editing)' class loader (using java.util.ServiceLoader
> class).
> ERROR main org.gvsig.tools.util.impl.DefaultServiceLoader - Can't load
> service (es.udc.lbd.giseiel.editing.lib.prov.multilinea.MultilineaEditingLibrary)
> from org.gvsig.andami.plugins.PluginClassLoader en b73e7a
> (es.dicoruna.giseiel.editing).
> java.util.ServiceConfigurationError: org.gvsig.tools.library.Library:
> Provider es.udc.lbd.giseiel.editing.lib.prov.redigitalizarPoligono.
> RedigitalizarPoligonoEditingLibrary not found
>     at java.util.ServiceLoader.fail(ServiceLoader.java:239)
>     at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
>     at java.util.ServiceLoader$LazyIterator.nextService(
> ServiceLoader.java:372)
>     at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
>     at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
>     at org.gvsig.tools.util.impl.DefaultServiceLoader.postJDK16Load(
> DefaultServiceLoader.java:232)
>     at org.gvsig.tools.util.impl.DefaultServiceLoader.load(
> DefaultServiceLoader.java:101)
>     at org.gvsig.tools.library.impl.DefaultLibrariesInitializer.
> findLibraries(DefaultLibrariesInitializer.java:77)
>     at org.gvsig.tools.library.AbstractLibrariesInitializer.
> addLibrariesOfClassLoader(AbstractLibrariesInitializer.java:194)
>     at org.gvsig.tools.library.AbstractLibrariesInitializer.loadLibraries(
> AbstractLibrariesInitializer.java:136)
>     at org.gvsig.tools.library.AbstractLibrariesInitializer.initialize(
> AbstractLibrariesInitializer.java:85)
>     at org.gvsig.tools.library.AbstractLibrariesInitializer.
> fullInitialize(AbstractLibrariesInitializer.java:115)
>     at org.gvsig.andami.Launcher.initializeLibraries(Launcher.java:782)
>     at org.gvsig.andami.Launcher.doMain(Launcher.java:570)
>     at org.gvsig.andami.Launcher.main(Launcher.java:395)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:497)
>     at org.gvsig.andamiupdater.Updater.launchApp(Updater.java:89)
>     at org.gvsig.andamiupdater.Updater.main(Updater.java:67)
>
> Y he revisado el código pero no recuerdo dónde se le indica a gvSIG que se
> registre una extensión. En cada extensión tengo el correspondiente
> "Library, Provider y ProviderFactory" que he visto en otras extensiones de
> gvSIG de las cuales seguí el patrón para hacer estas dos.
>
> ¿Alquien sabe qué he podido tocar o cambiar sin darme cuenta para que
> ahora salga este error y no funcionen las extensiones?
>
>
Hola Iago.
Por lo que puedo ver en el error, yo diria que cuando se estaban
inicializando
las librerias del plugin "es.dicoruna.giseiel.editing" se ha encontrado con
que
le fataba la clase:

"es.udc.lbd.giseiel.editing.lib.prov.redigitalizarPoligono.RedigitalizarPoligonoEditingLibrary"


Para que la inicializacion de las librerias, "Library", de gvSIG se realice
estamos usando
"java.util.ServiceLoader". Este servicio de java busca los recursos
"META-INF/services/org.gvsig.tools.library.Library" que pueda encontrar en
el classpath
y carga las clases que ahi se indican.

El error que esta dando es que entre los jars de tu plugin
"es.dicoruna.giseiel.editing"
tienes un fichero "META-INF/services/org.gvsig.tools.library.Library"
en el que figura una linea:

es.udc.lbd.giseiel.editing.lib.prov.redigitalizarPoligono.RedigitalizarPoligonoEditingLibrary

Para asi indicarle que debe cargar esa clase. Y resulta que en el classpath
no se encuentra la clase.

¿ Es posible que hayas borrado esa clase y se te haya olvidado quitarla del
fichero "META-INF/services/org.gvsig.tools.library.Library" que toque ?

o... ¿ Igual has renombrado la clase y no has ido a renombrarla en el
fichero ?
Los refactoring del IDE no tocan ese fichero.

o... ¿ Te puede faltar desplegar el jar donde este en el plugin
"es.dicor?una.giseiel.editing" ?

¿ Es posible que la clase este en otro plugin y te falte añadir la
dependencia
en el config.xml de "es.dicor?una.giseiel.editing" ?
Si fuese esto ultimo, yo eliminaria la entrada en el fichero del plugin
"es.dicor?una.giseiel.editing" y la dejaria en el plugin en que estuviese.


Bueno, esto ya es elucubrar. Con la poca info que dispongo no puedo
contarte mas.

Un saludo
Joaquin




> Un saludo y gracias.
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse
> de baja en esta lista, acuda a la siguiente dirección:
> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>
>


-- 
--------------------------------------
Joaquin Jose del Cerro Murciano
Development and software arquitecture manager at gvSIG Team
jjdelcerro en gvsig.com
jjdelcerro en gvsig.org
gvSIG Association
www.gvsig.com
www.gvsig.org
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20180308/cb398de1/attachment.html>


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