====== Terra Web Services How-to ====== Este //how-to// é baseado na dissertação de Francisco Gioielli. ====== Versão binária ====== ===== Obtendo os arquivos necessários ===== - Baixe o arquivo que contém o servidor TeWS, bem como suas dependências: [[http://www.dpi.inpe.br/~emerson/dload/tews/tews_bin.zip|tews_bin.zip]] - Baixe o arquivo que contém o cliente em JSP no [[http://www.grupodois.com.br/arquivos/tewsclient_webapp.zip|link]] - Baixe o arquivo cliente do TeWS, modificado: [[http://www.dpi.inpe.br/~emerson/dload/tews/tewsclient_jsp.zip|tewsclient_jsp.zip]] - Baixe o Apache 2.0.59 neste [[http://linorg.usp.br/apache/httpd/binaries/win32/apache_2.0.59-win32-x86-no_ssl.msi|link]]. **Nota:** também testado com o Apache 2.0.55, porém não funciona com o Apache 2.2.x - Baixe o Axis CPP 1.4 neste [[http://archive.apache.org/dist/ws/axis-c/binaries/win32/axis-c-1-4-win32.zip|link]]. **Nota:** não irá funcionar com as versões 1.2 ou 1.6b. - Baixe o Xerces-C 2.2.0 do [[http://archive.apache.org/dist/xml/xerces-c/Xerces-C_2_2_0/xerces-c2_2_0-win32.zip|link]] - Baixe o Apache Tomcat 5.0.28 neste [[http://linorg.usp.br/apache/tomcat/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.zip|link]]. **Nota:** também testado com o Tomcat 5.0.30 e 5.5.20 - Baixe o JDK 1.6.0 no site da [[http://java.sun.com/javase/downloads/index.jsp|Sun]]. **Nota:** também testado com o JDK 1.4.2 ===== Instalando os componentes ===== ==== Apache ==== - A instalação do Apache é muito simples. Use o arquivo ''apache_2.0.59-win32-x86-no_ssl.msi'' e siga as instruções (next - next - finish). O Apache normalmente é instalado na pasta ''C:\Arquivos de programas\Apache Group\Apache2'' - A configuração será abordada num momento oportuno ==== Tomcat ==== - Use o instalador do JDK para sua instalação. É bem simples (next - next - finish). - Ajuste a variável de ambiente((Meu Computador -> Propriedades -> Avançado -> Variáveis de ambiente)) ''%JAVA_HOME%'' para o caminho de instalação do JDK. No meu caso ficou ''C:\Arquivos de programas\Java\jdk1.6.0'' - Descompacte ''jakarta-tomcat-5.0.28.zip'' na raiz do ''C:\''. No meu caso ficou ''C:\jakarta-tomcat-5.0.28''. **Nota:** esse passo irá economizar correções nos arquivos do cliente - Ajuste a variável de ambiente ''%CATALINA_HOME%'' para o local onde o Tomcat está instalado - Registre o Tomcat como um serviço do Windows: ''%CATALINA_HOME%\bin\service.bat install Tomcat50'' ==== Axis CPP ==== - Descompacte o arquivo ''axis-c-1-4-win32.zip'' em algum local de sua preferência. No meu caso coloquei em ''D:\Projetos\axis-c-1-4-win32''. - Copie a pasta ''axis-c-1-4-win32\deploy'' p/ o Apache (''C:\Arquivos de programas\Apache Group\Apache2''), e renomei-a p/ ''Axis''. - Configure a variável de ambiente ''%AXISCPP_DEPLOY%'' apontando para esta pasta. No meu caso ''C:\Arquivos de programas\Apache Group\Apache2\Axis'' - Coloque a pasta ''%AXISCPP_DEPLOY%\lib'' na sua variável de ambiente ''%Path%'' - Copie o arquivo ''axis-c-1-4-win32\bin\mod_axis2.dll'' a pasta ''Apache2\modules'' - Copie os arquivos ''AxisServer.dll, AxisTransport.dll, AxisXMLParser_Xerces.dll'' da pasta ''axis-c-1-4-win32\bin'' para a pasta ''%AXISCPP_DEPLOY%\libs'' - Renomeie o arquivo ''AxisXMLParser_Xerces.dll'' para ''AxisXMLParser.dll'' - Descompacte o arquivo ''xerces-c2_2_0-win32.zip'' numa pasta de sua preferência. - Copie o arquivo ''xerces-c2_2_0-win32\bin\xerces-c_2_2_0.dll'' para a pasta ''%AXISCPP_DEPLOY%\libs'' === Configurando === - Abra o arquivo ''Apache2\conf\httpd.conf'' e adicione as seguintes linhas: LoadModule axis_module modules/mod_axis2.dll SetHandler axis - Abra o arquivo ''%AXISCPP_DEPLOY%\axiscpp.conf_win'', salve como ''axiscpp.conf'', com o seguinte conteúdo: LogPath:C:\Arquivos de programas\Apache Group\Apache2\Axis\log\AxisLog WSDDFilePath:C:\Arquivos de programas\Apache Group\Apache2\Axis\conf\server.wsdd XMLParser:AxisXMLParser.dll Transport_http:AxisTransport.dll - Abra o arquivo ''%AXISCPP_DEPLOY%\conf\server.wsdd_win'', depois salve como ''server.wsdd''. ==== Conferindo ==== - Após tudo instalado, vamos conferir se está funcionando. - Reinicie o computador (coisa do Windows). - Inicie o Apache e vá para o link [[http://localhost/axis/]]. Se surgir uma mensagem com o título __Welcome to Axis C++__, então está Ok. - Inicie o Tomcat (''> net start tomcat50''), e vá ao link [[http://localhost:8080/]]. Se vir a página inicial do Tomcat, então está Ok. **Nota:** opcionalmente você poderá iniciar o Tomcat executando o comando ''%CATALINA_HOME%\bin\startup.bat''. Caso não tenha configurado a variável ''%JAVA_HOME%'' corretamente antes de registrar o Tomcat como um serviço, será necessário remover o serviço e inserir novamente. ===== Instalando o TeWebServices ===== ==== Servidor ==== - Descompacte o arquivo ''tews_bin.zip'' numa lugar de sua preferência. * Copie os arquivos de ''tews_bin\lib'' para a pasta ''%AXISCPP_DEPLOY%\lib'' * Copie os arquivos de ''tews_bin\webservices'' para a pasta ''%AXISCPP_DEPLOY%\webservices'' * Copie os arquivos de ''tews_bin\wsdls'' para a pasta ''%AXISCPP_DEPLOY%\wsdls'' - Configure o arquivo ''%AXISCPP_DEPLOY%\conf\server.wsdd'', adicionando o seguinte conteúdo antes do fechamento do arquivo: - Crie uma pasta chamada ''mapimages'' na pasta ''Apache2\htdocs'' - **Atenção**: caso já tenha o Apache2 instalado, com o parâmetro ''DocumentRoot'' diferente de ''"C:/Arquivos de programas/Apache Group/Apache2/htdocs"'', adicione o seguinte texto ao seu ''httpd.conf'': Alias /mapimages/ "C:/Arquivos de programas/Apache Group/Apache2/htdocs/mapimages/" Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all - Reinicie o Apache ==== Cliente ==== - Descompacte o arquivo ''tewsclient_webapp.zip'' na pasta ''%CATALINA_HOME%\webapps'' - Descompacte o arquivo ''tewsclient_jsp.zip'' num lugar de sua preferência, então copie seu conteúdo para a pasta ''%CATALINA_HOME%\webapps\tewsclient'' - Edite o arquivo ''tewsclient\geoagente.xml'', acertando o atributo __wkt__ do elemento __dominio__ para um polígono que abranja sua área de trabalho. No meu caso, que usei um mapa das macro-regiões do estado de SP, ficou assim: - Copie o ''geoagente.xml'' para a pasta ''C:\windows\system32''. **Nota:** caso tenha iniciado o Tomcat através do comando ''%CATALINA_HOME%\bin\startup.bat'', copie o ''geoagente.xml'' para a pasta ''%CATALINA_HOME%\bin'' - Reinicie o Tomcat - Uma última configuração: o sistema vai procurar o host ''fgioielli'' para acesso. De forma que seu Windows traduza esse hostname para o localhost, adicione a seguinte linha ao arquivo ''c:\windows\system32\drivers\etc\hosts'': 127.0.0.1 fgioielli ==== Banco de dados ==== * O sistema foi testado em banco TerraLib armazenado no MySQL versão 4.1 * Os dados devem estar em coordenadas geográficas (LatLong) no TeLayer. Como exemplo, pode baixar os arquivos da Malha do IBGE p/ o estado de SP no seguinte [[ftp://geoftp.ibge.gov.br/mapas/malhas_digitais/municipio_2001/SP/|link]] * As seguintes tarefas devem ser realizadas a fim de evitar alterações no código fonte do cliente: - O banco de dados deve se chamar ''tutorial2'' - Crie um usuário ''test'' com senha em branco: GRANT ALL ON tutorial2.* TO test@localhost; - Execute os seguintes comandos SQL: USE tutorial2; CREATE TABLE `usuarios` ( `object_id` VARCHAR( 25 ) NOT NULL , `NOME` VARCHAR( 100 ) NOT NULL , `DESCRICAO` VARCHAR( 100 ) NOT NULL , `TIPO` VARCHAR( 100 ) NOT NULL , `USUARIO` VARCHAR( 100 ) NOT NULL , PRIMARY KEY ( `object_id` ) ) TYPE = InnoDB; INSERT INTO `te_projection` ( `projection_id`, `name`, `long0`, `lat0`,`offx`, `offy`, `stlat1`,`stlat2`, `unit`, `scale`, `hemis`, `datum`, `radius`, `flattening`, `dx`, `dy`, `dz`) VALUES ( '999', 'LatLong', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', 'DecimalDegrees', '1.0', '1', 'SAD69', '6378160', '0.003352892', '0.0', '0.0', '0.0'); INSERT INTO `te_layer_table` ( `table_id`, `layer_id`, `attr_table`, `unique_id`, `attr_link`, `attr_initial_time`, `attr_final_time`, `attr_time_unit`, `attr_table_type`, `user_name`, `initial_time` ,`final_time` ) VALUES ( '999', '999', 'usuarios', 'object_id', 'object_id', '', '', '1', '1', '', NULL , NULL); INSERT INTO `te_layer` ( `layer_id`, `projection_id`, `name`) VALUES ( '999', '999', 'usuarios' );