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:
<Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
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.
category: Portugal