Instalar Geoserver com Oracle em Windows

From OSGeo
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.