====== 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' );