segunda-feira, 23 de agosto de 2010

O mistério da importação de Kb's

Após apanhar um pouco, mas também foi meio por estupidez, resolvi abrir o Output de mensagens, quando após várias tentativas a kb exportada de outro computador não conseguia ser aberta de jeito nenhum em uma nova máquina.  Estava tudo muito claro, eu é que não observei, alias estava destacado em vermelho indicando o erro, :(

O fato é que ao importar uma kb de um computador para outro, não se esqueça de instalar todos os controles (UC's) utilizados. A nova máquina deve ter instalada os mesmos controles utilizados na kb original, caso contrário o processo de importação é interrompido.

terça-feira, 3 de agosto de 2010

Apanhando do Tomcat

Essa não é a minha praia, portanto, não fiquem bravos comigo se eu escrever um monte de besteiras. Mas configurar o Tomcat com o Genexus é uma beleza!

Mesmo seguindos os passos a seguir, talvez tenha que reiniciar o Tomcat algumas vezes, e também fechar o Genexus para que todas as configurações 'peguem' corretamente.

Parte 1. Configuração das Propriedades do Genexus
Basicamente toda operação ocorre nas propriedades do environment (na KB) e na pasta do Tomcat, não sendo necessárioas configurações no sistema operacional.

1) Nome da aplicação Java:
  • Genexus definirá como nome da aplicação Java, no diretório do Tomcat, com a combinação entre o nome da KB e o nome do environment.
    Exemplo: KB=Teste, Environment=JavaEnvironment, o nome da aplicação será definida como: Teste.JavaEnvironment  
  • Um diretório será criado, pelo Genexus, no Tomcat para a publicação desta aplicação, na pasta webapps.
2) Diretórios Java:
  • Compiler Path: define o caminho para o compilador Java, que deve ser instalado através de um pacote Java Standard Edition, baixados da Sun.

    Compiler Path=C:\Program Files\Java\jdk1.6.0_20\bin\javac.exe
     
  • Interpreter Path: define o caminho para o interpretador Java, que deve ser instalado através de um Java Runtime Edition ou Java Standard Edition, baixados da Sun. A versão JSE é melhor para desenvolvimento porque já inclui o interpretador e compilador Java.

    Interpreter Path=C:\Program Files\Java\jdk1.6.0_20\bin\java.exe
     
  • Classpath: define os caminhos para os objetos de classe (jar, ou Java Archive) que são necessários para construir a aplicação. Normalmente é necessário indicar aqui as classes para acessar o Mysql e também a classe servlet-api.jar.  Ao criar o projeto já serão definidas alguns caminhos no Classpath, voce deverá incluir a parte que se encontra em negrito abaixo.

    classpath: gxclassr.jar;gxclassr.zip;GxUtils.jar;.;lucene-core-2.2.0.jar;iText.jar;./drivers/mysql-connector-java-5.1.13-bin.jar;./drivers/servlet-api.jar
     
  • Genexus já inclui um conector Java, mas é recomendado que baixe um mais recente e o copie na pasta drivers de sua aplicação.
  • Copie o arquivo C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\servlet-api.jar na pasta drivers de sua aplicação. No final a pasta drivers deve ficar com a seguintes classes:

3) Diretório e caminhos para o Tomcat:
  • Servlet Directory: é o diretório onde roda a aplicação Genexus + Java no Tomcat. Na propriedade deverá ser indicado o caminho até a pasta classes.

    Servlet Directory=C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\Teste.JavaEnvironment\WEB-INF\classes
     
  • Static Directory: é o diretório onde o Genexus armazenará as informações estáticas (imagens, arquivos js, ...) da aplicação

    Static Directory=C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\Teste.JavaEnvironment\static
     
  • Web Root: indica a URL que será chamada pelo cliente para rodar a aplicação. No ambiente de teste deverá ser o próprio nome do projeto (item 1).

    Web Root=http://localhost:8080/Teste.JavaEnvironment/servlet/
     
  • Referente ao numero 8080, representa a porta ativa do Tomcat no servidor, caso queira o padrão, (80), e desde que não tenha o IIS instalado na mesma máquina, poderá alterar a configuração do arquivo C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\config.xml.
Parte 2. Configuração do Tomcat
Aqui a coisa pega um pouco porque depende muito de instalação para instalação, vou reproduzir as configurações que fiz nessa kb de teste.

Primeiramente desligue o Tomcat e faça uma cópia dos arquivos que estão sendo reconfigurados, por segurança.

1) Configuração do web.xml
  • O web.xml é um arquivo de configuração que se encontra no diretório C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf.
  • Minha configuração ligou as propriedades invoker que estavam anteriormente marcadas com comentário.
  • E também no servlet-mapping:
2) Configuração do Catalina:
  • Na pasta C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\Catalina\localhost, crie um arquivo chamado Teste.JavaEnvironment.xml.
  • Com o seguinte conteúdo:

3) Pasta lib:
  • Reproduza (copie) o conteúdo da pasta drivers (da aplicação) na pasta lib (do Tomcat), que se encontra no diretório C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\Teste.JavaEnvironment\WEB-INF


Importante: nesse modelo de configuração (via invoker) não crie nenhum arquivo web.xml na pasta WEB-INF, senão não funcionará.

Finalmente, ligue o Tomcat e execute a aplicação. 'Acho' que conseguirá rodar de primeira, mas ai é outra história.