Instalar Geoserver com Oracle em Windows

=Introdução=

Este guia explica como instalar o servidor de mapas Geoserver no sistema operativo Microsoft Windows com acesso ao Sistema Gestor de Base de Dados (SGDB) espacial Oracle.

O Geoserver é um programa de código aberto que serve mapas e informação espacial segundo os protocolos padrão Web Map Service (WMS) e Web Feature Service (WFS), suportando igualmente o protocolo WFS-Transactional (WFS-T) que permite a manipulação persistente da informação.

O Geoserver contém de origem o código necessário para aceder a uma base de dados PostGIS, no entanto para aceder a uma base de dados espacial Oracle é necessário instala à posteriori um módulo para este efeito. No sítio do Geoserver existe uma página em língua inglesa dedicada ao assunto.

Este guia foi testado com as versões 9.2i e 11g do SGBD Oracle sobre as versões XP Pro e Server 2003 do sistema operativo Microsoft Windows sempre com a versão 1.7.6 do Geoserver. Deverá no entanto funcionar com versões posteriores do Geoserver.

Assume-se que o Oracle foi previamente instalado no sistema operativo e está a funcionar correctamente, contendo pelo menos um esquema com informação espacial.

Nota: não é aconselhável a instalação da versão 11g do Oracle sobre o Windows XP, quer por dificuldades técnicas quer por elevada carga no sistema.

=Instalar Sun JDK=

Antes de mais há que instalar o Java Development Kit (JDK), para que o Geoserver possa funcionar. Durante a sua instalação o Oracle instala a Máquina Virtual do Java, mas este pacote não é suficiente. Terá que aceder ao sítio da Sun e descarregar o instalador da última versão do JDK.

Corra o instalador, bastando indicar qual o directório de instalação do JDK.

Com a instalação concluída é necessário criar uma variável de sistema indicando o caminho para o directório de instalação. Para tal aceda a:

Start –> Control Panel → System → Advanced → Environment Variables

Na secção System variables carregue em New. Aparece um formulário para criar uma nova variável de sistema; insira “JAVA_HOME” no campo name e o caminho para o directório de instalação do JDK (e.g. C:\Sun\JDK) no campo value.

=Instalar Geoserver=

Aceda ao sítio do Geoserver e descarregue o instalador para o Microsoft Windows. Corra o instalador tendo o cuidado de indicar o directório de instalação do JDK.

Terminada a instalação verifique que foi criada a variável de sistema “GEOSERVER_DATA_DIR” acedendo novamente a:

Start –> Control Panel → System → Advanced → Environment Variables

Caso esta variável não existe crie-a apontando para o directório de dados do Geoserver. Por defeito este directório é criado sob o ponto de instalação do Geoserver em:

GeoServer 1.7.6\data_dir

Poderá agora iniciar o Geoserver, para tal acedendo a:

Start → All Programs → Geoserver 1.7.6 → Start Geoserver

Por fim abra um navegador de internet e aceda ao endereço:

http://localhost:8080/Geoserver

=Mudar porto do Geoserver=

O Geoserver é servido por um servidor internet chamado Jetty que por defeito é instalado no porto 8080; é no entanto possível que já exista alguma aplicação aí a correr. A versão 9.2i do Oracle corre neste porto uma aplicação chamada XDB, sendo esse o caso, o Geoserver não consegue arrancar.

No entanto é possível mudar o porto em que corre o Geoserver. Para tal será necessário editar o ficheiro jetty.xml, onde se indica em que porto o Jetty deverá correr. Este ficheiro encontra-se no directório:

Geoserver 1.7.6\etc\jetty.xml

Neste ficheiro procure a linha:



Altere 8080 para outro porto admissível que esteja livre, e.g. 8090. De seguida re-inicie o Geoserver:

Start → All Programs → Geoserver 1.7.6 → Stop Geoserver Start → All Programs → Geoserver 1.7.6 → Start Geoserver

Aceda agora ao Geoserver no novo porto:

http://localhost:8090/Geoserver

Nota: para saber que portos estão ocupados e por quais aplicações use o comando netstat -ano na linha de comandos do Windows.

=Instalar módulo de acesso ao Oracle=

Aceda à página de descargas do Geoserver e descarregue o módulo de ligação ao Oracle, listado na secção Extensions. Descompacte este ficheiro, o que criará um directório com um nome como geoserver-1.7.6-oracle-plugin. Dentro deste novo directório deverão estar dois ficheiros de extensão jar:

gt-oracle-spatial-2.5-SNAPSHOT.jar

ojdbc14.jar

O primeiro contém o código da extensão do Geoserver, o segundo contém ó código para criar ligações JDBC ao Oracle. Copie estes dois ficheiros para o directório:

GeoServer 1.7.6\webapps\geoserver\WEB-INF\lib

Por fim re-inicie o Geoserver:

Start → All Programs → Geoserver 1.7.6 → Stop Geoserver Start → All Programs → Geoserver 1.7.6 → Start Geoserver

Nota: se o ficheiro ojdbc.jar não estiver incluído no pacote que descarregou poderá usar o que se encontra no directório de instalação do Oracle “$ORACLE_HOME/jdbc/lib” ou então descarregar uma nova versão do sítio do Oracle.

=Criar ligação do Geoserver a uma base de dados Oracle=

Com o módulo de ligação ao Oracle instalado o Geoserver passa agora a listar dois novos tipos de Data Store: “Oracle” e “Oracle (OCI)”. A primeira usa uma ligação JDBC, a segunda usa a OCI do Oracle; para saber mais sobre a diferença entre os dois tipos consulte a página de apoio do Geoserver.

Para se criar uma ligação por JDBC é necessário indicar, para além das credenciais de autenticação perante o Oracle, os parâmetros da ligação. Estes parâmetros deverão ser exactamente aqueles que se encontram na definição do listener. Para os conhecer com exactidão abra o ficheiro tnsnames.ora que se encontra no directório:

$ORACLE_HOME/network/admin

Este ficheiro deverá conter uma entrada semelhante a esta:

ORCL = (DESCRIPTION =    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.2.15)(PORT = 1521)) )    (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) )  )

Os elementos importantes a reter são aqueles a negrito. No campo Instance deverá ser indicado o nome do listener, neste caso “ORCL”. No campo Host deverá ser indicado o nome do computador ou o seu ip (e.g. localhost, 127.0.0.1) neste caso será “10.0.2.15”. Por fim é necessário indicar o porto onde corre o Oracle, por defeito o 1521. Se a ligação for criada com sucesso serão listadas as tabelas da base de dados no formulário de criação de um novo FeatureType.

É aconselhável indicar nos parâmetros da ligação, além destes dados e da autenticação, o esquema da base de dados a que o Geoserver se deve ligar, doutro modo serão listadas todas as tabelas de sistema na criação de um novo FeatureType.

=Registar SRS no Geoserver=

É possível que na base de dados existam dados num sistema de projecção estranho ao Geoserver, o que será o caso para dados em sistemas nacionais (e.g. Datum 73, Datum Lisboa). Assim sendo será necessário dar a conhecer ao Geoserver tal sistema. É possível pedir ao Oracle o sistema de projecção em formato WKT, usando um comando como:

select * from mdsys.cs_srs where upper(cs_name) like '%PORT%';

Do resultado pode-se usar o conteúdo do campo WKTEXT para adicionar uma nova linha ao ficheiro de projecções do Geoserver, que se encontra em:

GeoServer 1.7.6\data_dir\user_projections\epsg.properties

Re-inicie o Geoserver e verifique que o novo SRS foi adicionado correctamente, acedendo a:

http://localhost:8080/geoserver/srsHelp.do

=Conclusão=

No fim deste guia deverá ser possível configurar FeatureTypes no Geoserver que ligam directamente a temas espaciais numa base de dados Oracle. Estes FeaturesTypes poderão ser usados com os protocolos WMS, WFS e WFS-T.

Em caso de problemas consultar a página de apoio no sítio do Geoserver.