2 votos

¿Actualización de Geoserver de 2.5 a 2.7.5 o 2.8.1?

Tengo en producción una instalación de Geoserver 2.5, con las librerías GDAL y la extensión instalada y funcionando para mostrar los datos de MrSID, la extensión de SQL Server para proporcionar capas dinámicas almacenadas en una tabla de SQL Server, y me gustaría empezar a utilizar las capacidades de estilo CSS, pero esto aún no está instalado.

El servidor es una VM, por lo que me puedo permitir el lujo de restaurar una copia de seguridad de la misma, por lo que tengo la máquina idéntica, y luego tratar de actualizarla para ver qué pasa. Ya he fallado miserablemente dos veces, y me estoy poniendo ansioso y frustrado. Pero probablemente tomé un atajo que no debería haber tomado.

En ambos intentos (uno para actualizar a 2.8.1, el otro a 2.7.5), he descargado el instalador de Windows, he apagado el servidor que se está ejecutando actualmente (que se ejecuta como un servicio de Windows) y luego he ejecutado la instalación como una actualización in situ. Cuando no funcionó, (localhost:8080/geoserver devolvió el error 503), actualicé los plugins, añadí una línea a mi archivo wrapper.conf para que GDAL nativo se cargara correctamente, pero sigo teniendo errores de Java. Diferentes para 2.8.1 y 2.7.5.

2.7.5 me da el siguiente error

    STATUS | wrapper  | 2016/01/15 07:51:51 | --> Wrapper Started as Service
    STATUS | wrapper  | 2016/01/15 07:51:51 | Java Service Wrapper Community Edition 3.3.3
    STATUS | wrapper  | 2016/01/15 07:51:51 |   Copyright (C) 1999-2009 Tanuki Software, Ltd.  All Rights Reserved.
    STATUS | wrapper  | 2016/01/15 07:51:51 |     http://wrapper.tanukisoftware.org
    STATUS | wrapper  | 2016/01/15 07:51:51 | 
    STATUS | wrapper  | 2016/01/15 07:51:51 | Launching a JVM...
    INFO   | jvm 1    | 2016/01/15 07:51:52 | WrapperManager: Initializing...
    INFO   | jvm 1    | 2016/01/15 07:51:52 | 0 [WrapperSimpleAppMain] INFO org.mortbay.log - Logging to org.slf4j.impl.SimpleLogger@c550 via org.mortbay.log.Slf4jLog
    INFO   | jvm 1    | 2016/01/15 07:51:52 | 188 [WrapperSimpleAppMain] WARN org.mortbay.log - Deprecated configuration used for C:\Program Files (x86)\GeoServer 2.5/webapps
    INFO   | jvm 1    | 2016/01/15 07:51:52 | 219 [WrapperSimpleAppMain] INFO org.mortbay.log - jetty-6.1.8
    INFO   | jvm 1    | 2016/01/15 07:51:54 | Jan 15, 2016 7:51:54 AM it.geosolutions.imageio.gdalframework.GDALUtilities loadGDAL
    INFO   | jvm 1    | 2016/01/15 07:51:54 | INFO: GDAL Native Library loaded (version: 1.9.2)
    INFO   | jvm 1    | 2016/01/15 07:51:55 | Jan 15, 2016 7:51:55 AM org.geoserver.platform.GeoServerExtensions checkContext
    INFO   | jvm 1    | 2016/01/15 07:51:55 | WARNING: Extension lookup 'XStreamPersisterInitializer', but ApplicationContext is unset.
    INFO   | jvm 1    | 2016/01/15 07:51:55 | log4j:WARN File option not set for appender [geoserverlogfile].
    INFO   | jvm 1    | 2016/01/15 07:51:55 | log4j:WARN Are you using FileAppender instead of ConsoleAppender?
    INFO   | jvm 1    | 2016/01/15 07:51:55 | 3344 [WrapperSimpleAppMain] INFO /geoserver - Initializing Spring root WebApplicationContext
    INFO   | jvm 1    | 2016/01/15 07:51:58 | Jan 15, 2016 7:51:58 AM org.geoserver.platform.GeoServerExtensions checkContext
    INFO   | jvm 1    | 2016/01/15 07:51:58 | WARNING: Extension lookup 'GeoServerSecurityProvider', but ApplicationContext is unset.
    INFO   | jvm 1    | 2016/01/15 07:51:58 | 15 Jan 07:51:58 INFO [org.geoserver] - Loaded style 'AStyle'
    ...
    INFO   | jvm 1    | 2016/01/15 07:51:59 | 15 Jan 07:51:58 WARN [org.geoserver] - Failed to load coverage store 'arcGridSample'
    INFO   | jvm 1    | 2016/01/15 07:51:59 | com.thoughtworks.xstream.converters.ConversionException: Error creating bean with name 'pbePasswordEncoder' defined in URL [jar:file:/C:/Program%20Files%20(x86)/GeoServer%202.5/webapps/geoserver/WEB-INF/lib/gs-main-2.7.5.jar!/applicationSecurityContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/jasypt/encryption/pbe/PBEStringEncryptor : Error creating bean with name 'pbePasswordEncoder' defined in URL [jar:file:/C:/Program%20Files%20(x86)/GeoServer%202.5/webapps/geoserver/WEB-INF/lib/gs-main-2.7.5.jar!/applicationSecurityContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/jasypt/encryption/pbe/PBEStringEncryptor
    INFO   | jvm 1    | 2016/01/15 07:51:59 | ---- Debugging information ----
    INFO   | jvm 1    | 2016/01/15 07:51:59 | message             : Error creating bean with name 'pbePasswordEncoder' defined in URL [jar:file:/C:/Program%20Files%20(x86)/GeoServer%202.5/webapps/geoserver/WEB-INF/lib/gs-main-2.7.5.jar!/applicationSecurityContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/jasypt/encryption/pbe/PBEStringEncryptor
    INFO   | jvm 1    | 2016/01/15 07:51:59 | cause-exception     : org.springframework.beans.factory.BeanCreationException
    INFO   | jvm 1    | 2016/01/15 07:51:59 | cause-message       : Error creating bean with name 'pbePasswordEncoder' defined in URL [jar:file:/C:/Program%20Files%20(x86)/GeoServer%202.5/webapps/geoserver/WEB-INF/lib/gs-main-2.7.5.jar!/applicationSecurityContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/jasypt/encryption/pbe/PBEStringEncryptor
    INFO   | jvm 1    | 2016/01/15 07:51:59 | class               : org.geoserver.catalog.impl.CoverageStoreInfoImpl
    INFO   | jvm 1    | 2016/01/15 07:51:59 | required-type       : org.geoserver.catalog.impl.CoverageStoreInfoImpl
    INFO   | jvm 1    | 2016/01/15 07:51:59 | converter-type      : org.geoserver.config.util.XStreamPersister$StoreInfoConverter
    INFO   | jvm 1    | 2016/01/15 07:51:59 | line number         : 10
    INFO   | jvm 1    | 2016/01/15 07:51:59 | version             : 2.7.5
    INFO   | jvm 1    | 2016/01/15 07:51:59 | -------------------------------
    ...

Puedo proporcionar toda la larguísima lista de errores si es necesario, pero creo que todos o la mayoría están relacionados con el bean llamado pbePasswordEncoder que no se encuentra, y/o PBEStringEncryptor.

He leído que algunos guardan la carpeta de datos, instalan la nueva versión y luego sustituyen la carpeta de datos, pero debido a las extensiones y cambios de configuración que he hecho puede que no sea tan sencillo.

0 votos

Esos son grandes pasos de actualización, intente hacer de 2.5 a 2.6 a 2.7 (y 2.8). Hay una posibilidad razonable de que algunos problemas de bilidad de compatibilidad con versiones anteriores se hayan colado.

0 votos

Gracias iant, puedo probar eso. ¿Qué pasa con los plugins, esos duran?

0 votos

Para que sepas, intenté la actualización automatizada usando el programa de instalación de la 2.6 y tampoco se iniciaba... Vea mi respuesta para saber cómo lo logré finalmente.

1voto

RobG Puntos 424

Bueno, esto es lo que he descubierto... NO recomendaría hacer una instalación "in situ" con el instalador de Windows, al menos si se utilizan extensiones de GDAL. No estoy seguro de qué otras extensiones podrían causar problemas. ¿Tal vez todas ellas? He actualizado con éxito de la siguiente manera:

1) Hice una copia de seguridad de mi carpeta data_dir, que ya no estaba en el mismo lugar que el programa geoserver (estaba en otra unidad).

2) Desinstalé geoserver 2.5 (guardé una copia de las carpetas del programa para poder revisar los cambios en los archivos de configuración que podría tener que hacer de nuevo).

3) He desinstalado Geoserver 2.5.

4) He instalado Geoserver 2.8.1 (como servicio, que es como lo ejecuto)

5) Fui a Servicios y detuve el servicio (la instalación lo inicia)

6) Tenía una variable de entorno de todo el sistema GEOSERVER_DATA_DIR que la nueva instalación sobrescribió para que estuviera en C:\Program Archivos (86) \Geoserver 2.8.1... Así que hice clic con el botón derecho del ratón en Equipo, fui a la configuración avanzada, e hice que apuntara una vez más al directorio_de_datos de mi otra unidad.

7) He descargado y seguido las instrucciones para instalar las tres extensiones que necesito: las extensiones GDAL, la extensión SQL Server y la extensión CSS. Los binarios de GDAL siguen siendo la misma versión que para 2.5, así que no tuve que actualizarlos. Pero lo hice de todos modos. Tienes que asegurarte de que, para todas las extensiones, tienes las que coinciden con la versión de Geoserver (2.8.1 en este caso).

8) Tuve que editar Wrapper.conf para que GDAL funcionara, como se describe en el manual de usuario de Geoserver, pero también tuve que añadir

set.PATH=wrapper/lib;%PATH%

en el archivo wrapper.conf como se recomienda en http://www.geo-solutions.it/blog/fix-gdal-extension-not-working-with-geoservers-windows-service-wrapper/ pero esto aún no está documentado en el manual de usuario en línea.

9) He puesto en marcha el servicio y ha funcionado de maravilla. Pude entrar con mi id/pw de administrador, todos los almacenes y capas estaban allí, incluyendo la capa de MrSID y la capa de SQL Server que ya había definido en 2.5.

Hasta ahora todo va bien... Si veo que no funciona bien por alguna razón, editaré esta respuesta.

En mi opinión, el proceso de actualización es una mierda. El proceso de instalación debería incluir una gestión administrativa MUCHO mejor de la instalación y actualización de las extensiones. Sería genial si, al instalar sobre una instalación anterior, el instalador pudiera saber qué extensiones tengo, y al menos proporcionar información sobre cómo/donde debo actualizarlas para que el programa funcione. Y la instalación sobre no elimina ninguno de los archivos jar que ya están en las carpetas lib, así que tenía múltiples versiones de las extensiones allí. Muy posiblemente esto causó las excepciones cuando traté de ejecutar después de la actualización automática.

El proceso de simplemente poner archivos jar en la biblioteca y que tus extensiones se carguen de repente es, a falta de una mejor manera de decirlo, no es bueno. Si alguna vez puedo terminar mi otro trabajo, puede que busque ayudar a apoyar una mejor metodología de instalación y extensión en el futuro. Casi compré tiempo de consultoría para esto - puede que lo considere en el futuro. Hacer que el Geoservidor funcione no debería tomar tanto de mi tiempo. Ya estoy bastante ocupado utilizándolo.

En definitiva, mi recomendación para las actualizaciones será siempre, por ahora, guardar el data_dir, desinstalar el viejo, instalar el nuevo, reinstalar todas tus extensiones, volver a poner el data_dir, y listo.

0 votos

Para ser honesto, mi consejo sería utilizar siempre el archivo war directamente en el contenedor de servlets de su elección (recomiendo tomcat) y nunca (nunca nunca) ejecutarlo como un servicio de Windows (o incluso en una máquina de Windows) para un servicio de producción. Y, como siempre, ejecutar las actualizaciones en el entorno de prueba antes de desplegar a la producción.

0 votos

Interesante. Lo he tenido funcionando en producción como un servicio de Windows durante un par de años, y no he tenido problemas con él. Funciona durante meses y meses antes de que finalmente lo reinicie para instalar las actualizaciones de Windows que se han acumulado :). Sólo tengo un servidor con Hyper-V, Geoserver está instalado en una VM. En mi caso no estoy convencido de que funcione mejor con una VM LAMP. No he probado una VM LAMP en Hyper-V recientemente. También puedo mirar de ejecutarlo bajo Tomcat en Windows - ¿crees que sería mejor que Jetty?

0 votos

A menos que hayas actualizado el jetty, el que envía GeoServer es muy antiguo (y no tiene soporte) - está diseñado sólo para pruebas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X