Integración deste Java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Integración deste Java

Alejandro Díaz
Buenas tardes,

estoy estudiando la integración de un proyecto con GeoNetwork.

Se trata un geoportal compuesto por una interfaz web con Spring MVC que se
encarga de publicar capas en Geoserver (parte privada, de administración) y
se consumen desde un visor basado en OpenGeo SDK (parte pública).

En el caso de la integración con Geoserver hemos utilizado el conector de
GeoSolutions: geoserver-manager[1] y pretendíamos hacer lo mismo con
geonetwork-manager[2] para la publicación de metadatos.

Al lanzar los tests unitarios contra una instancia del último GeoNetwork
(v2.10), lanza la una excepción[3] y parece ser que se debe a un cambio en
el mecanismo de autenticación[4], por lo que la actual versión de
geonetwork-manager no es compatible.

Lo he adaptado para que haga el login con el nuevo mecanismo[5], pero ahora
me devuelve un error al insertar el xml[6].

Mi duda es: ¿el resto de la API es funcional? siguiendo la documentación
disponible[7] lo he probado con este cliente REST[8] y el resultado es el
mismo (adjunto la prueba[9]).

¿Conocéis algún mecanismo alternativo de integración desde Java?

Saludos y muchas gracias!

[1] https://github.com/geosolutions-it/geoserver-manager
[2] https://github.com/geosolutions-it/geonetwork-manager
[3] http://pastebin.com/qwwMRqZz
[4]
http://osgeo-org.1560.x6.nabble.com/XML-Login-Service-in-Geonetwork-2-10-td5064670.html
[5]
https://github.com/alediator/geonetwork-manager/tree/geonetwork-v2.10-compatibility
[6] http://pastebin.com/3u0P42B2
[7]
http://geonetwork-opensource.org/manuals/2.10.0/eng/developer/xml_services/metadata_xml_insert_update_delete.html
[8]
http://restforchrome.blogspot.com.es/?utm_source=ARC&utm_medium=InsideApplication&utm_campaign=About
[9]
https://docs.google.com/file/d/0B3i6JKwZJEw2OHFhUWFiZV9zcWc/edit?usp=sharing

--
Alejandro Díaz Torres.
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
GeoNetwork-usuarios-es mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geonetwork-usuarios-es
Reply | Threaded
Open this post in threaded view
|

Re: Integración deste Java

delawen
2013/7/22 Alejandro Díaz <[hidden email]>:
> Buenas tardes,
>

Hola Ale,

> estoy estudiando la integración de un proyecto con GeoNetwork.
>
> Se trata un geoportal compuesto por una interfaz web con Spring MVC que se
> encarga de publicar capas en Geoserver (parte privada, de administración) y
> se consumen desde un visor basado en OpenGeo SDK (parte pública).
>
> En el caso de la integración con Geoserver hemos utilizado el conector de
> GeoSolutions: geoserver-manager[1] y pretendíamos hacer lo mismo con
> geonetwork-manager[2] para la publicación de metadatos.
>
> Al lanzar los tests unitarios contra una instancia del último GeoNetwork
> (v2.10), lanza la una excepción[3] y parece ser que se debe a un cambio en
> el mecanismo de autenticación[4], por lo que la actual versión de
> geonetwork-manager no es compatible.

Efectivamente, ahora el login se hace por Spring. El proyecto que usas
para conectarte a GeoNetwork parece un poco antiguo (seis meses
parado), seguramente no sea compatible con las versiones 2.6 en
adelante en muchas cosas.

>
> Lo he adaptado para que haga el login con el nuevo mecanismo[5], pero ahora
> me devuelve un error al insertar el xml[6].
>
> Mi duda es: ¿el resto de la API es funcional? siguiendo la documentación
> disponible[7] lo he probado con este cliente REST[8] y el resultado es el
> mismo (adjunto la prueba[9]).

Por lo que veo:
2013-07-22 14:26:40,351 ERROR [jeeves.service] -  (C) Exc :
MissingParameterEx : data

Te falta el parámetro "data" en la llamada a la API. ¿Cómo estás
haciendo esta llamada?

¿Puedes poner tu request completo?


>
> ¿Conocéis algún mecanismo alternativo de integración desde Java?

Hay otro deprecated que es este:
https://github.com/geonetwork/core-gast

Tampoco será compatible.

Puedes mirar cómo lo hace la parte de la interfaz gráfica, a ver si
eso te aclara algo.

>
> Saludos y muchas gracias!
>

Saludos y suerte,
María.

¡¡Cafeína!!

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
GeoNetwork-usuarios-es mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geonetwork-usuarios-es
Reply | Threaded
Open this post in threaded view
|

Re: Integración deste Java

delawen
2013/7/22 María Arias de Reyna <[hidden email]>:

> 2013/7/22 Alejandro Díaz <[hidden email]>:
>> Buenas tardes,
>>
>
> Hola Ale,
>
>> estoy estudiando la integración de un proyecto con GeoNetwork.
>>
>> Se trata un geoportal compuesto por una interfaz web con Spring MVC que se
>> encarga de publicar capas en Geoserver (parte privada, de administración) y
>> se consumen desde un visor basado en OpenGeo SDK (parte pública).
>>
>> En el caso de la integración con Geoserver hemos utilizado el conector de
>> GeoSolutions: geoserver-manager[1] y pretendíamos hacer lo mismo con
>> geonetwork-manager[2] para la publicación de metadatos.
>>
>> Al lanzar los tests unitarios contra una instancia del último GeoNetwork
>> (v2.10), lanza la una excepción[3] y parece ser que se debe a un cambio en
>> el mecanismo de autenticación[4], por lo que la actual versión de
>> geonetwork-manager no es compatible.
>
> Efectivamente, ahora el login se hace por Spring. El proyecto que usas
> para conectarte a GeoNetwork parece un poco antiguo (seis meses
> parado), seguramente no sea compatible con las versiones 2.6 en
> adelante en muchas cosas.
>
>>
>> Lo he adaptado para que haga el login con el nuevo mecanismo[5], pero ahora
>> me devuelve un error al insertar el xml[6].
>>
>> Mi duda es: ¿el resto de la API es funcional? siguiendo la documentación
>> disponible[7] lo he probado con este cliente REST[8] y el resultado es el
>> mismo (adjunto la prueba[9]).
>
> Por lo que veo:
> 2013-07-22 14:26:40,351 ERROR [jeeves.service] -  (C) Exc :
> MissingParameterEx : data
>
> Te falta el parámetro "data" en la llamada a la API. ¿Cómo estás
> haciendo esta llamada?
>
> ¿Puedes poner tu request completo?
>
>
>>
>> ¿Conocéis algún mecanismo alternativo de integración desde Java?
>
> Hay otro deprecated que es este:
> https://github.com/geonetwork/core-gast
>
> Tampoco será compatible.
>
> Puedes mirar cómo lo hace la parte de la interfaz gráfica, a ver si
> eso te aclara algo.
>

Concretamente, si ejecutas con el parámetro debug en la URL
(http://---------/?debug) puedes espiar en el fichero
MetadataInsertPanel.js cómo se hace esta llamada:


        var groupStore =
GeoNetwork.data.GroupStore(catalogue.services.getGroups);
        groupStore.load();

        this.uploadForm = new Ext.form.FormPanel({
            //fileUpload: true,
            region: 'center',
            split: true,
            border: false,
            frame: false,
            errorReader: new Ext.data.XmlReader({
                    record : 'response'
                }, ['id']
            ),
            items: [{
                xtype: 'textfield',
                hidden: true,
                name: 'insert_mode',
                value: '0'
            }, {
                xtype: 'textfield',
                hidden: true,
                name: 'template',
                value: this.isTemplate
            }, {
                xtype: 'textarea',
                name: 'data',
                fieldLabel: OpenLayers.i18n('xmlData'),
                allowBlank: false,
                anchor: '98% 90%'
            }, new Ext.form.ComboBox({
                name: 'group',
                hiddenName: 'group',
                mode: 'local',
                emptyText: OpenLayers.i18n('chooseGroup'),
                triggerAction: 'all',
                fieldLabel: OpenLayers.i18n('group'),
                store: groupStore,
                allowBlank: false,
                valueField: 'id',
                displayField: 'name',
                tpl: '<tpl for="."><div
class="x-combo-list-item">{[values.label.' +
GeoNetwork.Util.getCatalogueLang(OpenLayers.Lang.getCode()) +
']}</div></tpl>'
            })],
            buttons: [{
                text: OpenLayers.i18n('add'),
                scope: this,
                iconCls: 'thumbnailGoIcon',
                handler: function(){
                    if (this.uploadForm.getForm().isValid()) {
                        this.uploadForm.getForm().submit({
                            url: catalogue.services.mdXMLInsert,    //
FIXME : global catalogue var
                            scope: this,
                            success: function(fp, action){
                                if (this.ownerCt) {
                                    this.ownerCt.close();
                                }
                            },
                            failure: function(response){

Ext.Msg.alert(OpenLayers.i18n('failure'), response.responseText);
                            }
                        });
                    }
                }
            }]




------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
GeoNetwork-usuarios-es mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geonetwork-usuarios-es
Reply | Threaded
Open this post in threaded view
|

Re: Integración deste Java

delawen
2013/7/22 María Arias de Reyna <[hidden email]>:

> 2013/7/22 María Arias de Reyna <[hidden email]>:
>> 2013/7/22 Alejandro Díaz <[hidden email]>:
>>> Buenas tardes,
>>>
>>
>> Hola Ale,
>>
>>> estoy estudiando la integración de un proyecto con GeoNetwork.
>>>
>>> Se trata un geoportal compuesto por una interfaz web con Spring MVC que se
>>> encarga de publicar capas en Geoserver (parte privada, de administración) y
>>> se consumen desde un visor basado en OpenGeo SDK (parte pública).
>>>


Siento ser tan pesada, hoy me vienen las ideas por chunks.

¿Has pensado en usar la interfaz CSW?
http://trac.osgeo.org/geonetwork/wiki/HowToDoCSWTransactionOperations
http://en.wikipedia.org/wiki/Catalog_Service_for_the_Web

Así estarías usando estándares, que no van a cambiar (o al menos, no
está previsto que cambien tanto).

Saludos,
María.

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
GeoNetwork-usuarios-es mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geonetwork-usuarios-es
Reply | Threaded
Open this post in threaded view
|

Re: Integración deste Java

Alejandro Díaz
In reply to this post by delawen
Gracias por las respuestas María,

te las contesto una a una:


El 22 de julio de 2013 14:48, María Arias de Reyna <[hidden email]>escribió:

> 2013/7/22 Alejandro Díaz <[hidden email]>:
> > Buenas tardes,
> >
>
> Hola Ale,
>
> > estoy estudiando la integración de un proyecto con GeoNetwork.
> >
> > Se trata un geoportal compuesto por una interfaz web con Spring MVC que
> se
> > encarga de publicar capas en Geoserver (parte privada, de
> administración) y
> > se consumen desde un visor basado en OpenGeo SDK (parte pública).
> >
> > En el caso de la integración con Geoserver hemos utilizado el conector de
> > GeoSolutions: geoserver-manager[1] y pretendíamos hacer lo mismo con
> > geonetwork-manager[2] para la publicación de metadatos.
> >
> > Al lanzar los tests unitarios contra una instancia del último GeoNetwork
> > (v2.10), lanza la una excepción[3] y parece ser que se debe a un cambio
> en
> > el mecanismo de autenticación[4], por lo que la actual versión de
> > geonetwork-manager no es compatible.
>
> Efectivamente, ahora el login se hace por Spring. El proyecto que usas
> para conectarte a GeoNetwork parece un poco antiguo (seis meses
> parado), seguramente no sea compatible con las versiones 2.6 en
> adelante en muchas cosas.
>
> >
> > Lo he adaptado para que haga el login con el nuevo mecanismo[5], pero
> ahora
> > me devuelve un error al insertar el xml[6].
> >
> > Mi duda es: ¿el resto de la API es funcional? siguiendo la documentación
> > disponible[7] lo he probado con este cliente REST[8] y el resultado es el
> > mismo (adjunto la prueba[9]).
>
> Por lo que veo:
> 2013-07-22 14:26:40,351 ERROR [jeeves.service] -  (C) Exc :
> MissingParameterEx : data
>
> Te falta el parámetro "data" en la llamada a la API. ¿Cómo estás
> haciendo esta llamada?
>
> ¿Puedes poner tu request completo?
>

El request es este:

Url:
http://localhost:8080/geonetwork/srv/en/metadata.insert

Content-type:
application/xml

Payload:
http://pastebin.com/JR3f7wgL

Y la respuesta me devuelve un error 500 con el error en el servidor.

[1]
https://docs.google.com/file/d/0B3i6JKwZJEw2clAyZW1UUXJSeEk/edit?usp=sharing


>
>
> >
> > ¿Conocéis algún mecanismo alternativo de integración desde Java?
>
> Hay otro deprecated que es este:
> https://github.com/geonetwork/core-gast
>
> Tampoco será compatible.
>
> Puedes mirar cómo lo hace la parte de la interfaz gráfica, a ver si
> eso te aclara algo.
>

Ok, le echo un ojo.




--
Alejandro Díaz Torres.
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
GeoNetwork-usuarios-es mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geonetwork-usuarios-es
Reply | Threaded
Open this post in threaded view
|

Re: Integración deste Java

delawen
2013/7/23 Alejandro Díaz <[hidden email]>:

>> Por lo que veo:
>> 2013-07-22 14:26:40,351 ERROR [jeeves.service] -  (C) Exc :
>> MissingParameterEx : data
>>
>> Te falta el parámetro "data" en la llamada a la API. ¿Cómo estás
>> haciendo esta llamada?
>>
>> ¿Puedes poner tu request completo?
>
>
> El request es este:
>
> Url:
> http://localhost:8080/geonetwork/srv/en/metadata.insert
>
> Content-type:
> application/xml
>
> Payload:
> http://pastebin.com/JR3f7wgL


Vale, creo que el problema es que lo estás mandando en formato XML,
cuando lo que debería pasar es que enviaras en formato parámetros
(POST, si el data es largo).

No he tocado ese código por lo que no puedo asegurártelo al 100%, pero
viendo el código javascript que te he pasado y el código del servidor,
es lo que parece. Si es así habría que actualizar el manual para que
no lleve a confusión.

La cosa es que internamente, GN utiliza jeeves, que convierte todo a
XML, por eso se ve en formato XML.

Saludos,
María.

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
GeoNetwork-usuarios-es mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geonetwork-usuarios-es
Reply | Threaded
Open this post in threaded view
|

Re: Integración deste Java

Alejandro Díaz
In reply to this post by delawen
El 22 de julio de 2013 14:50, María Arias de Reyna <[hidden email]>escribió:

> 2013/7/22 María Arias de Reyna <[hidden email]>:
> > 2013/7/22 Alejandro Díaz <[hidden email]>:
> >> Buenas tardes,
> >>
> >
> > Hola Ale,
> >
> >> estoy estudiando la integración de un proyecto con GeoNetwork.
> >>
> >> Se trata un geoportal compuesto por una interfaz web con Spring MVC que
> se
> >> encarga de publicar capas en Geoserver (parte privada, de
> administración) y
> >> se consumen desde un visor basado en OpenGeo SDK (parte pública).
> >>
> >> En el caso de la integración con Geoserver hemos utilizado el conector
> de
> >> GeoSolutions: geoserver-manager[1] y pretendíamos hacer lo mismo con
> >> geonetwork-manager[2] para la publicación de metadatos.
> >>
> >> Al lanzar los tests unitarios contra una instancia del último GeoNetwork
> >> (v2.10), lanza la una excepción[3] y parece ser que se debe a un cambio
> en
> >> el mecanismo de autenticación[4], por lo que la actual versión de
> >> geonetwork-manager no es compatible.
> >
> > Efectivamente, ahora el login se hace por Spring. El proyecto que usas
> > para conectarte a GeoNetwork parece un poco antiguo (seis meses
> > parado), seguramente no sea compatible con las versiones 2.6 en
> > adelante en muchas cosas.
> >
> >>
> >> Lo he adaptado para que haga el login con el nuevo mecanismo[5], pero
> ahora
> >> me devuelve un error al insertar el xml[6].
> >>
> >> Mi duda es: ¿el resto de la API es funcional? siguiendo la documentación
> >> disponible[7] lo he probado con este cliente REST[8] y el resultado es
> el
> >> mismo (adjunto la prueba[9]).
> >
> > Por lo que veo:
> > 2013-07-22 14:26:40,351 ERROR [jeeves.service] -  (C) Exc :
> > MissingParameterEx : data
> >
> > Te falta el parámetro "data" en la llamada a la API. ¿Cómo estás
> > haciendo esta llamada?
> >
> > ¿Puedes poner tu request completo?
> >
> >
> >>
> >> ¿Conocéis algún mecanismo alternativo de integración desde Java?
> >
> > Hay otro deprecated que es este:
> > https://github.com/geonetwork/core-gast
> >
> > Tampoco será compatible.
> >
> > Puedes mirar cómo lo hace la parte de la interfaz gráfica, a ver si
> > eso te aclara algo.
> >
>
> Concretamente, si ejecutas con el parámetro debug en la URL
> (http://---------/?debug)


¿Dónde lo puedo lanzar? ¿está en GeoNetwork? ¿---------? Entiendo que se
trata de parte de la vista nueva en html5[2].

[2]
http://geonetwork-opensource.org/manuals/2.10.0/eng/developer/userinterface/index.html#html5ui


> puedes espiar en el fichero
> MetadataInsertPanel.js cómo se hace esta llamada:
>
>
>         var groupStore =
> GeoNetwork.data.GroupStore(catalogue.services.getGroups);
>         groupStore.load();
>
>         this.uploadForm = new Ext.form.FormPanel({
>             //fileUpload: true,
>             region: 'center',
>             split: true,
>             border: false,
>             frame: false,
>             errorReader: new Ext.data.XmlReader({
>                     record : 'response'
>                 }, ['id']
>             ),
>             items: [{
>                 xtype: 'textfield',
>                 hidden: true,
>                 name: 'insert_mode',
>                 value: '0'
>             }, {
>                 xtype: 'textfield',
>                 hidden: true,
>                 name: 'template',
>                 value: this.isTemplate
>             }, {
>                 xtype: 'textarea',
>                 name: 'data',
>                 fieldLabel: OpenLayers.i18n('xmlData'),
>                 allowBlank: false,
>                 anchor: '98% 90%'
>             }, new Ext.form.ComboBox({
>                 name: 'group',
>                 hiddenName: 'group',
>                 mode: 'local',
>                 emptyText: OpenLayers.i18n('chooseGroup'),
>                 triggerAction: 'all',
>                 fieldLabel: OpenLayers.i18n('group'),
>                 store: groupStore,
>                 allowBlank: false,
>                 valueField: 'id',
>                 displayField: 'name',
>                 tpl: '<tpl for="."><div
> class="x-combo-list-item">{[values.label.' +
> GeoNetwork.Util.getCatalogueLang(OpenLayers.Lang.getCode()) +
> ']}</div></tpl>'
>             })],
>             buttons: [{
>                 text: OpenLayers.i18n('add'),
>                 scope: this,
>                 iconCls: 'thumbnailGoIcon',
>                 handler: function(){
>                     if (this.uploadForm.getForm().isValid()) {
>                         this.uploadForm.getForm().submit({
>                             url: catalogue.services.mdXMLInsert,    //
> FIXME : global catalogue var
>                             scope: this,
>                             success: function(fp, action){
>                                 if (this.ownerCt) {
>                                     this.ownerCt.close();
>                                 }
>                             },
>                             failure: function(response){
>
> Ext.Msg.alert(OpenLayers.i18n('failure'), response.responseText);
>                             }
>                         });
>                     }
>                 }
>             }]
>
>
>
>
Esto también lo he intentado partiendo del catálogo[3]. Pero también me da
una serie de errores en la comunicación con GN si intento cargar el
panel[4].

[3]
http://geonetwork-opensource.org/manuals/2.10.0/eng/widgets/lib/web-client/jst/GeoNetwork/Catalogue.html
[4]
https://docs.google.com/file/d/0B3i6JKwZJEw2S0JpMy1kWkNRTmM/edit?usp=sharing


1000 gracias de nuevo!

--
Alejandro Díaz Torres.
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
GeoNetwork-usuarios-es mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geonetwork-usuarios-es