Oi Estive a ver o exemplo to GeoServer e o documento to WPS1.0.0, e ja percebo o que se passa (como sabem eu funciono a carvao de pedra...)
Eu nunca tinha visto um exemplo como o fornecido pelo GeoServer, e e' a primeira vez que vi uma implementacao de um pedido POST usando Reference, normalmente so se usa o <wps:Reference> para pedidos GET. Mas o exemplo do Geoserver 'e um exemplo de WPS chainning, em que estas a meter um pedido WPS dentro doutro pedido que por sua vez faz uma pedido WFS. Acho que o melhor exemplo para o teu caso esta aki : http://docs.geoserver.org/stable/en/user/extensions/wps/requestbuilder.html#wps-request-builder Na figura "Raw WPS POST request for the above process" Onde 1 pedido aceita o Body POST e usa o Body para chamar o WFS Eu estive a ver a documentacao e o procedimento vem descrito na Table 43 do standard. Eu tentei usar o xmllint para validar o pedido mas o parser diz que ha um problema com os tags, mas em eclipse esta tudo OK. Quanto ao PyWPS, o uso de um pedido POST com um body nao esta supportado, mas acho que nao seria muito problematico adicionar umas linhas de codigo para lidar com a situacao. Sinceramente acho que a implementacao POST/Body so existe no Geoserver. Eu vou mandar um email para o PyWPS mailing list para ver o que se pode fazer e para ouvir mais comentarios, Jorge On 09/25/2012 09:27 AM, Luís de Sousa wrote: > Olá Jorge, > > Neste exemplo do GeoServer não é necessário usar a marca ComplexData: > > http://docs.geoserver.org/stable/en/user/extensions/wps/processes.html > > E faz sentido, uma vez que ComplexData e Reference são coisas > diferentes. Não deveria um pedido com a mesma estrutura funcionar > tanto no PyWPS como no Geoserver? > > O que dizes em relação ao PyWPS não ser capaz de processar as > referências WFS é um bocado chato. Isto significa que a implementação > da norma não é completa. Fazer um fork do PyWPS não era exactamente a > minha idea. > > Abraço, > > Luís > > > > 2012/9/24 Jorge de Jesus <[email protected]>: >> >> Oi >> >> Estive a ver na pywps wiki e nao ha 1 exemplo de como fazer um pedido de >> referencia em XML usando POST. >> >> Se queres bons exemplos ve na pasta de /tests/requests do codigo do pywps >> >> Acho que o problema e' que estas a misturar um input de referencia con >> um input em XML. >> >> Um pedido usando uma referencia e' assim: >> >> http://pastebin.com/qrjxDhSn >> >> No teu caso basta: >> <wps:Reference >> xlink:href="http://myServer/cgi-bin/mapserv?map=/path/to/file.map"> >> >> Depois o PyWPS vai buscar o URL e' melhor se codificare o URL >> (enquote_plus no http://docs.python.org/library/urllib.html) >> >> MAS Se tens de passar um pedido WFS tipo: >> >> <wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" >> : >> <wfs:Query >> xmlns:feature="http://myServer/cgi-bin/mapserv?map=/path/to/file.map" >> typeName="myLayer"> >> >> >> Vais ter de meter o pedido dentro do <ComplexData> ja que isto e' um >> conteudo em XML e o conteudo vai estar disponivel dentro do execute(), e >> teras de escrever umas linhas de codigo para enviar o pedido para o >> servidor WFS. >> >> >> Jorge >> >> >> >> >> On 09/24/2012 05:31 PM, Luís de Sousa wrote: >>> Olá a todos, >>> >>> Estou a usar o PyWPS e preciso de passar como argumento a alguns >>> processos uma referencia para um tema disponível por WFS. Para tal >>> estou a construir um pedido POST em xml, como o que segue em baixo. >>> Enviando este pedido estou a receber um "internal server error - 500". >>> Imagino que seja um problema com o PyWPS mas não estou inteiramente >>> certo que pedido estaja correcto, se alguém podes dar uma olhada >>> agradecia. >>> >>> Obrigado, >>> >>> Luís >>> >>> ################################### >>> <?xml version="1.0" encoding="UTF-8"?> >>> <wps:Execute service="WPS"version="1.0.0"language="en-CA" >>> xmlns:wps="http://www.opengis.net/wps/1.0.0" >>> xmlns:ows="http://www.opengis.net/ows/1.1" >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> xsi:schemaLocation="http://www.opengis.net/wps/1.0.0/wpsExecute_request.xsd"> >>> >>> <ows:Identifier>bufferProcess</ows:Identifier> >>> >>> <wps:DataInputs> >>> >>> <wps:Input> >>> <ows:Identifier>data</ows:Identifier> >>> <wps:Reference mimeType="text/xml; subtype=wfs-collection/1.0" >>> xlink:href="http://myServer/cgi-bin/mapserv?map=/path/to/file.map" >>> method="POST"> >>> <wps:Body> >>> <wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="WFS" >>> version="1.1.0" maxFeatures="1" >>> xsi:schemaLocation="http://www.opengis.net/wfs >>> http://schemas.opengis.net/wfs/1.1.0/wfs.xsd"> >>> <wfs:Query >>> xmlns:feature="http://myServer/cgi-bin/mapserv?map=/path/to/file.map" >>> typeName="myLayer"> >>> </wfs:Query> >>> </wfs:GetFeature> >>> </wps:Body> >>> </wps:Reference> >>> </wps:Input> >>> >>> <wps:Input> >>> <ows:Identifier>size</ows:Identifier> >>> <wps:Data> >>> <wps:LiteralData>1</wps:LiteralData> >>> </wps:Data> >>> </wps:Input> >>> >>> </wps:DataInputs> >>> >>> <wps:ResponseForm> >>> <wps:ResponseDocument lineage="true" >>> storeExecuteResponse="true" status="true"> >>> </wps:ResponseDocument> >>> </wps:ResponseForm> >>> >>> </wps:Execute> >>> _______________________________________________ >>> Portugal mailing list >>> [email protected] >>> http://lists.osgeo.org/mailman/listinfo/portugal >>> >>> >> >> >> -- >> ISRIC - World Soil Information Post: PO box 353, 6700 AJ, Wageningen, >> The Netherlands Visiting Address: Droevendaalsesteeg 3, 6708 PB >> Wageningen (Bdg. 101), Office: C.013 Office Phone: +31 (0) 317 4 83715 >> Mobile Phone: +31 (0) 613 9 06950 OpenPGPKey: 0xDEE898AB >> >> >> _______________________________________________ >> Portugal mailing list >> [email protected] >> http://lists.osgeo.org/mailman/listinfo/portugal > _______________________________________________ > Portugal mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/portugal > > -- ISRIC - World Soil Information Post: PO box 353, 6700 AJ, Wageningen, The Netherlands Visiting Address: Droevendaalsesteeg 3, 6708 PB Wageningen (Bdg. 101), Office: C.013 Office Phone: +31 (0) 317 4 83715 Mobile Phone: +31 (0) 613 9 06950 OpenPGPKey: 0xDEE898AB _______________________________________________ Portugal mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/portugal
