Preparação dos Ambientes

De BIS Wiki
Ir para navegação Ir para pesquisar

Embora a aplicação J2EE deva ser portável entre ambientes, há sempre pequenas alterações nos sistemas que compõe o ambiente, como JVM, versão do JEE, servidor de aplicações, banco de dados, bibliotecas, entre outras que podem influenciar no deploy da aplicação ou no funcionamento do sistema.

Por isso o sistema segue uma recomendação de ambiente, na qual o BIS é desenvolvido e testado. É altamente recomendável que ao desenvolver o BIS o ambiente usado seja o mesmo. Pois mesmo que inicialmente não tenha nenhum problema de funcionamento, versões futuras podem usar recursos não utilizados antes e passar a apresentar problemas.

Ambiente Homologado

Os componentes de ambiente e suas versões homologadas são:

  • Glassfish v5.0
  • MySQL v8.0.11.0
    • JDBC 8.0.11 (mysql-connector-java-8.0.11.jar)
  • Java v1.8.0_102 - Fizemos o Downgrade da versão v1.8.0_171 por não funcionar o JavaMail.
Ambiente de Desenvolvimento
O desenvolvedor ainda precisará das seguintes ferramentas:
  • Eclipse 2019-09
  • MySQL Workbench 8.0.18

Instalação do JDK

  1. Baixe a versão do JDK homologada;
  2. Execute e siga os passos do Wizard para completar a instalação. (Preferencialmente aceite as opções padrão de instalação)


Desabilitar Auto Update

Para evitar problemas de atualização automática, ou mesmo consumo de banda, vamos desligar a atualização automática do java no servidor. A atualização automática pode trocar a versão do Java por uma não homologada pelo BIS, fazendo com que funções importantes deixem de funcionar adequadamente. Por isso a atualização do JDK só é feita manualmente e na versão homologada.

Para desabilitar a atualização automática proceda da seguinte forma:

  1. Abra o Painel de Controles > Java
  2. Na Aba Atualizar, desmarque a caixa Verificar se Há Atualizações Automaticamente.
  3. Ao desmarcar aparece um diálogo de confirmação, clique em Não Marcar
  4. Confirme clicando em OK

Instalação do MySQL

Utilizando o Instalador para Windows

  1. Execute o Instalador e escolha a opção de instalação apenas do Servidor.
Microsoft Visual C++ Redistributable
Caso o sistema ainda não tenha instalado o componente da Microsoft, faça a instalação a partir do próprio instalador do MySQL
  1. Ao fim da instalação o será iniciado o processo de configuração do Servidor, escolhas as seguintes opções:
    1. Standalone MySQL Server / Classic MySQL Replication, next;
    2. Config Type: Server Machine, next;
    3. Configure a senha do banco como biserp2003, não adicione nenhuma outra conta, next;
    4. Configure o serviço com o nome mysql, e deixe rodar como Standard Service Account, next;
    5. Em Plugins e Exceptions não há nada para alterar, next;
    6. Clique em Execute para configurar o servidor.
  1. Finalize o Wizard principal de instalação.
Ambiente de Produção
Verifique as configurações do serviço criado para ter certeza que o serviço foi configurado para ligar automaticamente com o Windows ao iniciar.

Utilizando o ZIP - Sem instalador

  • Descompacte o conteúdo na pasta desejada. No windows, recomendável o próprio C:
  • (Opcional) Renomeie a pasta para "MySQL", removendo a definição da versão da pasta. Caso necessário a versão pode ser obtida pelo comando:
mysql --version
  • Crie um arquivo my.ini na pasta do mysql e cole o seguinte conteúdo corrigindo os caminhos:
[mysqld]
# set basedir to your installation path
basedir=c:\\mysql
# set datadir to the location of your data directory
datadir=c:\\mysql\\data
# set directory to export files on dump
#secure-file-priv=c:/Dumps
#Troca o padrão do SQL_MODE para que seja possível usar select com groupBy e colunas que não estejam agregadas, sem ter que usar a função any_value() em casa coluna do select.
#O valor definido aqui é o valor padrão do próprio MySQL removendo apenas o ONLY_FULL_GROUP_BY, acrescentado a partir da versão 5.7.x como padrão.
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
secure-file-priv
Esse atributo deve ser definido caso haja a intenção de exportar o conteúdo das tabelas em arquivos de texto, como por exemplo usando o parâmetro --tab do mysqldump.exe.

No entanto, se esse atributo for definido, a pasta deve existir! Caso contrário o MySQL não inicializa!

  • O MySQL do ZIP não contem a pasta "data" criada com as tabelas iniciais do banco "mysql". Para cria-la utilize o comando:
mysqld --initialize-insecure
Note que este comando inicializará o banco com um usuário root sem senha, mas vamos configura-la na sessão seguinte.
  • Para inicializar o servidor e verificar se tudo corre bem, utilize o seguinte comando:
mysqld --console
  • Para instalar o MySQL como um serviço do windows utilize:
mysqld --install <servicename>
Nome do Serviço Opcional
Caso o nome do serviço seja omitido, o serviço será instalado com o nome padrão 'mysql'. Só é necessário informar outro nome caso haja mais de uma versão do mysql instalada. Neste caso lembre-se de não permitir os serviços iniciando automaticamente para evitar conflito com a porta de conexão.


  • Para inicializar o MySQL como um serviço utilize:
net start mysql

Configurar o MySQL

  • Acesse o MySQL executando o comando abaixo:
c:\mysql\bin\mysql -uroot -p


Usuário Root
Para conseguir se conectar no banco é obrigatório passar o parâmetro do usuário (-uroot) e o de senha (-p<seha>).


Caso seja passado apena o "-p" sem informa a senha, ela será perguntada com um campo hidden, útil para não exibir a senha quando alguém estiver próximo.

  • Caso não tenha definido uma senha para o root, é bom defini-la. Para definir a senha de um usuário utilize a sintaxe:
SET PASSWORD FOR 'root'@'localhost' = 'biserp2003';
  • Cria uma nova base de dados com o nome "bis_kernel" para as tabelas compartilhadas do sistema e a "bis_bis" para base da primeira empresa (a própria BIS):
CREATE DATABASE bis_kernel;
CREATE DATABASE bis_bis;
  • Muda para entre as bases de dados criadas com o comando:
USE bis_kernel;

ou

USE bis_bis;
  • Importe o(s) script(s) base nesta base de dados com o comando abaixo. Comece pelo script do kernel, já que as tabelas das empresas tem FKs que dependem da base do kernel.
mysql -uroot -p bis_kernel <filename_path>\bis_kernel_10.0.0.sql;

e

mysql -uroot -p bis_bis <filename_path>\bis_bis_10.0.0.sql;


Escape Caracters
Não se esqueça que o MySQL utiliza escape caracters na sua sintaxe, logo se o caminho para o script for e:\BISInstaKit\biscore_basescript.sql você deve usar e:\\BISInstaKit\\biscore_basescript.sql ao digitar o caminho no comando SOURCE.


Script Base
Os scripts de base costumam ser versionados no projeto BISEAR em /etc/resources/dbbasescripts. Esses scripts não são armazenados junto com os scripts de atualização porque não são empacotados junto com a aplicação, eles fazem parte da configuração do ambiente.


Usuário Próprio
Para o ambiente de produção é bom restringir o acesso a base de dados e não usar a conta root. Para isso vamos criar um usuário exclusivo para acesso ao banco de dados 'biserp' com o comando abaixo:
CREATE USER 'bis'@'%' IDENTIFIED BY 'biserp2003';

Em seguida precisamos garantir acesso total deste novo usuário ao banco de dados. Precisamos dar acesso que inclua criar novos bancos de dados, uma vez que ele precisará criar quando o sistema cadastrar novas empresas no sistema:

GRANT USAGE ON *.* TO 'bis'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'bis'@'%' WITH GRANT OPTION;

Por fim force o reload das permissões:

FLUSH PRIVILEGES;


MySQL 8
No MySQL 8 o plugin de autenticação foi substituído. E a autenticação feita pelo Glassfish dará problema. Para corrigir o problema de autenticação, é necessário utilizar o seguinte comando para atualizar a senha do usuário que o Glassfish vai usar para o plugin antigo de autenticação:
ALTER USER 'bis'@'%' IDENTIFIED WITH mysql_native_password BY 'biserp2003';

O problema foi detectado utilizando o GlassFish 4, com o MySQL Connector 5.1.43 e o MySQL 8.0.11.


Usuário Leitura
Para cliente com usuários mais avançados, podemos permitir um acesso a nossa base de dados somente de leitura, permitindo que o cliente extraia dados diretamente da base de dados e gere seus próprios relatórios.
CREATE USER 'cliente'@'%' IDENTIFIED BY 'cliente';
GRANT SELECT ON `bis_bis`.* TO 'cliente'@'%' identified by 'cliente';

Para efetivar o usuário execeute:

FLUSH PRIVILEGES;

Instalação do Glassfish

  1. Faça download da versão homologada pelo BIS do Glassfish.
  2. Descompacte o conteúdo do .ZIP no drive 'C:\'

Configurando JDK Utilizado

A instalação o Glassfish tenta utilizar o "java" que estiver no path do sistema, isso é, ele simplesmente chama por "java" sem se preocupar com caminho para inicia-lo. Se o java padrão for o correto não é preciso fazer nada, embora seja recomendado definir exatamente o caminho a ser utilizado, assim, se no futuro alguma nova versão for instalada o Glassfish não passará a utilizar "outra versão" inadvertidamente.

Para configurar o glassfish edit o arquivo em <installdir>\glassfish\config\asenv.bat e acrescente a linha abaixo no final do arquivo para definir o home do JDK a ser utilizado:

set AS_JAVA=c:\Program Files\Java\jdk<version>

Domínio BISERP

Use o Domínio Padrão
Para o ambiente de desenvolvimento o melhor é usar o domínio padrão do glassfish (chamado 'domain1'). Assim utilizando as portas padrões do GlassFish. Facilita a configuração e integração do Glassfish no Ecipse.

Para o ambiente de produção pule a etapa abaixo de criação, e nas etapas seguintes ao invés do domínio BISERP utilize domain1, ao invés da porta 9048 utilize a 4848 e da porta 9080 utilize a 8080.


Para separar a aplicação, ou mesmo permitir mais de uma aplicação na mesma máquina, podemos criar domínios separados para cada aplicação. Mesmo que ao iniciar o Glassfish crie um domínio padrão chamado 'domain1', para o ambiente de produção é recomendado criar um domínio diferente. Para o BISERP recomendamos criar um domínio nomeado 'BISERP'. Para isso utilize o comando:

c:\<installdir>\glassfish\bin\asadmin create-domain --portbase 9000 BISERP


Administrador do Domínio
Ao criar o domínio, você será questionado sobre a criação de um usuário e senha. Esse senha serve para gerenciar esse domínio. O usuário e senha serão necessários para acessar a página de configurações. É recomendado definir o usuário 'bis' e a senha 'biserp2003' para proteger as configurações do domínio.


  • portbase - é o número da porta base. A partir dessa porta todas as outras portas padrão serão somadas. Por exemplo, se passar como porta base "9000", as portas criadas serão 9080 para http, 9048 para a porta administração, e assim por diante. Para o BISERP recomendamos passar como parâmetro o valor: 9000.


Portas do Domínio
As portas que serão criadas para cada domínio estão relacionadas a seguir. Lembre-se que os valores das portas serão adicionados ao valor passado em 'portbase', por isso recomendamos que cada domínio usa um 'portbase' múltiplo de 100, para que desta maneira cada domínio tenha um "prefixo" das suas portas, e o final das portas seja o mesmo para cada serviço de cada domínio.
  • 48 for Admin.
  • 80 for HTTP Instance.
  • 76 for JMS.
  • 37 for IIOP.
  • 81 for HTTP_SSL.
  • 38 for IIOP_SSL.
  • 39 for IIOP_MUTUALAUTH.
  • 86 for JMX_ADMIN.
  • 66 for OSGI_SHELL.
  • 09 for JAVA_DEBUGGER.


Permitir Acesso Remoto à tela Admin

O Glassfish 4 exige que o acesso remoto seja feito através de https na máquina local. Para permitir que o acesso possa ser feito de outra máquina temos de habilitar o login seguro no domínio. Antes de executar a configuração necessária precisamos primeiramente 'levantar' o domínio:

asadmin start-domain BISERP

Para realizar a liberação do acesso utilize:

asadmin --host localhost --port 9048 enable-secure-admin
  • host: endereço da máquina onde está o glassfish, provavelmente localhost se feito da mesma máquina.
  • port: porta do admin - domain1 = 4848; BISERP = 9048

Configurando MySQL no Glassfish

Bibliotecas no Servidor de Aplicações

Devemos copiar as bibliotecas existentes no projeto BISERP na pasta etc/containerlibs para a pasta lib do domínio que será usado, pois são bibliotecas genéricas que precisamos que o GlassFish tenha em sua execução, como por exemplo as bibliotecas do JDBC do banco utilizado (atualmente MySQL). Se estiver com o domínio iniciado, reinicie-o para que ele carregue a nova biblioteca.

Configurar pool de conexões no banco de dados

Para que o BISERP funcione é necessário configurar um POOL de conexões com o banco de dados no Glassfish e depois um DataSource com o nome jdbc/BISDS.

  1. Entre na tela de administração do GlassFish, se seguiu os passos deste manual é:
    1. Para o ambiente de desenvolvimento: http://localhost:4848
    2. Para o ambiente de produção: http://localhost:9048
  2. Entre com o login criado durante a criação do domínio BISERP: pelos passos deste manual é bis/biserp2003.
  3. Abra a sessão Resources/JDBC/Connection Pools para criar o novo pool
    1. Clique em criar
    2. Dê o nome "MySQLPool", por exemplo
    3. Em Resource Type defina javax.sql.ConnectionPoolDataSource
    4. Escolha o banco de dados MySQL e clique em avançar.
      >> Caso ao perder o foco o campo esteja retornando para o valor 'em branco' novamente. Clique diretamente no botão 'Next' sem tirar o foco do campo que funciona.
    5. Na tela seguinte, informe a classe correta do Datasource Classname: com.mysql.cj.jdbc.MysqlDataSource
    6. Nas propriedades abaixo, faça defina as seguintes propriedades:
      1. user: bis (usuário criado no mysql para acessar o banco, para desenvolvimento pode acessar diretamente com a conta root)
      2. password: biserp2003 (Senha do usuário do banco de dados)
      3. serverName: localhost
      4. useSSL: false
      5. serverTimezone: America/Sao_Paulo
      6. Click em Finalizar.
    7. Agora na sessão Resouces/JDBC/JDBC Resources vamos criar o data source da aplicação
      1. Clique em New
      2. Em JNDI Name complete com "jdbc/BISDS" este valor não pode ser alterado pois é o resource que a aplicação procura.
      3. Escolha o Pool que definimos no passo anterior e confirme.

Para confirmar se tudo funcionou bem, pode entrar no JDBC Connection Pool, clicar no Pool que criamos no primeiro passo e clicar em PING. Se não for bem sucedido o erro dará uma pista do que está errado.

Solução de Problemas
Verifique a sessão final deste documento sobre a solução de problemas.

Instalando o Domínio BISERP como serviço do Windows

Para que o BIS levante-se automaticamente com o sistema é preciso configurar o domínio do glassfish como um serviço do Windows e configuração para iniciar automaticamente. Para criar o serviço execute o comando abaixo:

c:\glassfish4\glassfish\bin\asadmin create-service --name biserp biserp

Depois que o serviço for criado, é preciso garantir que está configurado para inicialização automática. Para isso:

  1. Abra a janela de Serviços[1] do Windows
  2. Procure o serviço com o nome BISERP GlassFish Server e dê um duplo clique para abrir suas propriedades
  3. Na opção Tipo de inicialização: garanta que esteja como Automático (Atraso na Inicialização)
  4. Clique em OK para confirmar.


Porque inicializar com atraso?
O Glassfish necessita que o MySQL já esteja em pé quando inicializar. Mesmo que normalmente o MySQL seja mais rápido que o Glassfish, é mais garantido se o Glassfish atrasar um pouco sua inicialização.

Marcado para inicializar com atraso, o próprio windows se encarregará de só inicia-lo depois de iniciar os serviços marcados como Automático, como deve estar o MySQL.

Habilitar Debug Externo

Para fazer com que o servidor habilite o modo Debug ao inicializar, realize o seguinte procedimento:

  1. Entre no console administrativo;
  2. Abra o caminho Configurations > server-config > JVM Settings ou equivalente onde tenha sido feito o deploy da aplicação;
  3. Marque a caixa Debug: Enabled;
  4. Para especificar uma porta diferente para o Debug acrescente/altere a proriedade address=<port-number> na caixa "Debug Options" logo abaixo;
    É recomendável deixar na porta padrão, afinal o Debug só deve ser ligado em ambientes controlados!


Reinicio necessário!
Para que esta alteração entre em vigor será necessário reiniciar o servidor. Este reinicio pode ser executado pelo próprio Admin Console na aba server. Ou, logo após a alteração de qualquer configuração que exija um reinício do servidor, o console exibirá um link Restart Required no cabeçalho da página. Ao clicar no link as alterações pendentes são exibidas junto com um botão de restart.

Fazendo o Deploy do BISERP

Agora que o Glassfish já foi configurado corretamente, precisamos colocar a aplicação BISERP para executar. Para isso siga os passos abaixo:

  1. Entre na tela de administração do domínio BISERP, através do endereço http://localhost:9048, se você seguiu todos os passos deste manual.
  2. Selecione no menu a opção "Aplications"
  3. Click no Botão "Deploy"
  4. Na tela que abrir, click em "selecionar o arquivo" e escolhar o EAR do BISERP
  5. Após selecionar o arquivo, diversas novas opções aparecem, deixe todas nos seus valores padrão e click em OK. Esse passo pode demorar um pouco, entre subir o arquivo para o servidor e completar o deploy.

Neste ponto o BISERP já deve ser acessível através do endereço http://localhost:9080/BIS/.

Para fazer com que o site principal (raiz) do endereço a ser exibido seja a página do BIS, vá até no menu: "Configurations > server-config > VIrtual Servers > server" e na opção "Default Web Module" escolha a opção "<nome do deploy>#BISPresWAR.war".

Deploy em Ambiente de Desenvolvedor
O deploy do BISERP feito desta maneira é só para ambiente de produção! Durante o desenvolvimento o Eclipse fará o deploy diretamente a cada vez publicamos o código pela IDE.

Aplicação WEB Principal

É possível configurar a aplicação para ser acessível da raiz do domínio, isto é, ao invés do endereço http://localhost:9080/BIS/ usar o endereço http://localhost:9080/.

Para isso precisamos configurar o domínio para assumir que o BISWAR da aplicação BISERP é a aplicação web padrão seguindo os seguintes passos:

  1. Abra a administração do glassfish no endereço https://localhost:9048 e faça login
  2. Abra o menu-árvore no caminho Configurations > server-config > Virtual Servers > server
  3. Na tela de configuração que se abre do lado direito, no campo Default Web Module, escolha a opção do WAR padrão. A opção que terminar com BISWAR.war
  4. Clique em save do lado superior direito


Troca de Versões
Essa configuração precisa ser refeita toda vez que um novo arquivo for enviado para deploy, como por exemplo em uma troca de versão. Uma vez que um novo arquivo é enviado o Glassfish perde a informação do pacote "Default", e precisará ser indicado novamente.

Eclipse

A versão do Eclipse sendo usada como referência nesta instalação é a versão Luna.

  1. Faça o download do Eclipse for Java EE Developers em http://www.eclipse.org/downloads
  2. Descompacte a pasta em um local de sus preferência.
  3. Confirme que os arquivos java sejam encontrados a partir do path padrão.
    É recomendável que se crie uma variável de ambiente JAVA_HOME para indicar o diretório padrão do java, e depois acrescentar na variável PATH o caminho ";%JAVA_HOME%\bin".
  4. Crie atalho para o eclipse.exe no menu iniciar para facilitar o acesso ao programa, se for de sua preferência.

Primeira execução

Ao executar a primeira vez o Eclipse, ele solicitará a criação de um workspace. Caso já tenha algum de alguma instalação anterior pode indicar sua localização. Caso contrário, marque a opção para não ser questionado novamente e crie um no local padrão sugerido.


Abra o eclipse e configure as telas de maneira como preferir.

Instalação do SVN Plugin

Desinstalação Das Versões Anteriores
Para realizar a instalação que "deu certo", eu primeiro procurei e desinstalei todos os plugins com as palavras "SVN" e "Subversive" do Eclipse. Para isso vá em 'Help -> About Eclipse', clique no botão 'Installation Details' na aba 'Installed Software' procure pelas palavras chaves (uma de cada vez), selecione todos os pacotes e clique em 'Uninstall...'. Repita o processo para ambas as palavras chaves e reinicie o Eclipse no final.

Mesmo que a instalação do Eclipse seja nova, convém remover todos pacotes que já vieram com o Eclipse para evitar conflitos ou ficar com duas ferramentas de SVN instaladas.


  1. Vá no menu 'Help -> Eclipse Marketplace...', na janela que abre digite 'subversive' e aperte Enter para realizar o filtro. Escolha a instalação do SubVersive como demostrado abaixo:
    Pacote de Instalação do SubVersive a partir do MarketPlace...
    Pacote de Instalação do SubVersive a partir do MarketPlace...
  2. Selecione apenas os pacotes já sugeridos, conforme imagem abaixo:
    Seleção dos Pacotes a Serem Instalados
    Seleção dos Pacotes a Serem Instalados
  3. Estranhamente ocorre um erro por "falta de pacote" ao tentar instalar, confirme que deseja instalar mesmo assim.
    Confirme o Erro de Falta de Pacote e Continue a Instalação
    Confirme o Erro de Falta de Pacote e Continue a Instalação
  4. Siga os passos da instalação, aceite os termos de licença, aceite a instalação mesmo sem os pacotes estarem assinados, e por fim reinicie o Eclipse quando solicitado.
  5. Após reiniciar, o Eclipse abrirá direto a caixa de diálogo abaixo para instalação dos conectores. Selecione apenas o 'Native JavaHL 1.8...'
    Instalação do Conector Manual - Caso após reiniciar o Eclipse não apresente a tela para escolha e instalação do conector, vá em "Window -> SVN -> SVN Connector" e escolha a opção "Get Connectors".
    Seleção do Conector para Instalação
    Seleção do Conector para Instalação
  6. Ao continuar deve ser exibido os seguintes pacotes para instalação:
    Seleção dos Pacotes do Conector
    Seleção dos Pacotes do Conector
  7. Siga os passos da instalação normalmente, confirmando as licenças, ausência de assinatura, e reinicie o Eclipse quando solicitado.

Instalação do Vaadin Plugin no Eclipse

Apenas para UI - Vaadin
A instalação do plugin do Vaadin é necessária para desenvolvedores da UI do Vaadin, uma vez que o projeto do WAR utiliza o 'facet' do Vaadin.

Durante o processo de compilação do Widget é necessário incluir como biblioteca todos os JARs do Vaadin e suas dependências (JARs dentro da pasta 'lib' do pacote de distribuição do Vaadin).

  1. Entre no endereço https://vaadin.com/eclipse
  2. Arraste o ícone de install para o eclipse.
  3. Aguarde o Eclipse definir as dependências e baixar, selecione tudo e confirme.
  4. Aceite os termos de uso e confirme.
  5. Aguarde o Eclipse fazer o download e a instalação, e aceite a reinicialização.

Instalação do BISMetaObjectGenerator

O BIS oferece um plugin para o Eclipse com a finalidade de gerar de forma automática os VO_ com base nos VOs criados. Para instalar siga os sequintes passos.

  1. Os binários do plugin a ser utilizado no projeto ficam disponível dentro do projeto BISEAR na pasta "\etc\projectsetup\EclipsePlugins\"
  2. Descompacte o conteúdo do .zip dentro da pasta "%eclipse%\dropins". Depois de descompactado a estrutura final ficará algo como "eclipse\dropins\plugins\BISMetaObjectGenerator_2.0.2.jar"
  3. Reinicie o eclipse.
Ativação do Plugin
Depois de instalado é preciso ter certeza de que o plugin está ativado no projeto, caso contrário o eclipse não executa o plugin durante a compilação do código.

Para ativar o plugin clique com o botão direito no projeto e vá no menu "Configure > Enable BIS MetaObject Generator". Caso esta opção não exista, mas exista a opção "Configure > Disable BIS MetaObject Generator" significa que o plugin está funcionando e já está habilitado no projeto.


Para ter certeza de que o plugin está funcionando, faça qualquer alteração em uma classe do tipo VO, e verifique se a classe VO_ é atualizada. A cada arquivo gerado ou atualizado, mesmo que não tenha nenhuma outra alteração, a data é atualizada.


Ignorar os arquivos VO_
Para que os arquivos gerados pelo Plugin não sejam versionados, é preciso acrescentar o pattern "*/*VO_.java" na lista de Ignored Resources no menu Windows > Preferences > Team > Ignored Ressources

Instalação do JAutoDoc

  • Instalação pelo MarketPlace
  1. Vá em "Help -> Eclipse Marketplace" e procure por "JAutoDoc".
  2. Clique em Instalar
  • Instalação por Drag 'n' Drop
Este plugin permite que todo o javaDoc criado para um "field" (atributo da classe) seja recplicado automaticamente nos métodos get e Set ao pressionar a tecla de atalho CTRL+ALT+J.
  1. Entre no site https://marketplace.eclipse.org/content/jautodoc e arraste o botão "INSTALL" para o eclipse.
  2. Siga os passos do Wizard para terminar a instalação.


Configuração do Módulo

  1. Após a instalação (e o reinício, se necessário), vá no menu "Windows > Preferences", no caminho "Java > JAutoDoc" e clique no botão "Import All..." para importar as configurações usadas no projeto BIS.
  2. O arquivo com as opções salvas ficam no projeto "BIS" no arquivo "etc\Environment Setup\jautodoc-eclipse.xml"

Fazendo Checkout do Projeto

Dependência
É necessário já ter completado a instalação do Subclipse


  1. Na aba Project Explorer, clique com o direito e escolha New -> Others
  2. Escolha a opção "Checkout Projects fom SVN"
  3. Se ainda não tiver a localidade do projeto criada, escolha criar uma nova localidade.
    1. No endereço coloque o local. Por exemplo: http://svn.biserp.com.br/
  4. Na tela seguinte certifique-se de escolher a pasta correta dentro do projeto. Normalmente é a pasta trunk caso queira trabalhar na versão corrente do sistema. Clique em avançar até chegar a pasta onde deseja salvar o projeto. É recomendável colocar todos os projetos do BIS dentro de uma única pasta, por exemplo "BISProject".
  5. Repita o passo anterior até baixar todos projetos desejados e projetos de dependências. Não se importe que por enquanto o eclipse dará erros de ambiente e falta de bibliotecas.

Configurando o JDK e Bibliotecas no Eclipse

  1. Os projetos por padrão utilizam os JDK com o nome no padrão 'jdk x64'. Crie o JVM no eclipse com este nome apontando para a JVM homologada pelo BIS.


Maven
Desde a adoção do Maven para controlar as bibliotecas de cada projeto não é mais necessário realizar configurações extras de bibliotecas no Eclipse

Configurando a Biblioteca do JavaFX

Alguns projetos podem ainda usar a biblioteca JavaFX que deve apontar para a versão do JavaFX homologada. A biblioteca do JavaFX segue o padrão de nome "JavaFX 1.8.0 x64".


Configurando o Glassfish 5

Desinstação do OpenSDK
Durante a instação do Oracle Enterprise Pack" o eclipse pode solicitar a desinstalação de ferramentas do OpenSDK. Para o funcionamento do BIS será necessário realizar a desinstalação.


  • Instalação do Plugin
  1. No menu Help -> Install new Software adicione o site:
    1. Eclipse Oxigen - "Oracle Enterprise Pack for Eclipse" com o Endereço: http://download.oracle.com/otn_software/oepe/12.2.1.8/oxygen/repository/
      1. Depois do site carregado, abra a pasta "Tools" e instale o "Oracle Java EE Tools".
    2. Eclipse 2021 R6 - "Glassfish Tools" com o Endereço: https://download.eclipse.org/glassfish-tools/1.0.1/repository/
      Site anterior - http://download.eclipse.org/glassfish-tools/1.0.0/repository
  2. Clique em avançar, aceite as licenças e confirme a instalação.
  3. Aceite reiniciar o Eclipse no fim da instalação.
  • Configuração do Servidor
  1. Após a instalação finalizada, vá em File -> New -> Other (CTRL + N)
  2. Na janela que abre digite 'server' para encontrar o item 'Server' e clique em Next
  3. Escolha a opção GlassFish, o nome do 'Environment' deve ser GlassFish 5 (para que o 'Target RunTime' do projeto fique igual para todos) e aceite as demais opções padrão e clique em Next
  4. Em 'Glassfish location' coloque o diretório da instalação do glassfish como abaixo.
    C:\glassfish5\glassfish
  5. Nas opções de JDK escolha a JDK homologada pelo BIS, e clique em Next.
  6. Nesta tela o Eclipse deve ter sugerido o domain1 como diretório do domínio, o usuário admin e nenhuma senha.
    Se este tutorial está sendo seguido para o ambiente de desenvolvimento o usuário é 'admin' e sem senha (padrão do Glassfish), caso contrário utilize o usuário e senha orientado na sessão de instalação do Glassfish.

O server já está instalado e pronto para uso, no entando ainda é necessário algumas configurações menores. Para isso abra a view 'Server' e dê um duplo clique em cima do servidor criado. No editor que se abre faça as seguintes alterações:

  • Timeouts: Em timeout de start pode ser necessário aumentar o tempo quando o sistema tiver debug em código durante a inicialização ou tiver muita tarefa durante o processo de deploy da aplicação. Coloque 240 para cobrir os casos de Debug na própria inicialização. Esse tempo só ajuda a prevenir a mensagem de falha de deploy da aplicação quando ela demorar muito.
  • Publishing: Garanta que a opção 'Never publish automatically' esteja marcada. Caso contrário a opção funcionalidade do HotCode nunca funcionará.

Configurando o Eclipse para Formatar o Código

É importante que todo desenvolvedor formate o código do mesmo modo para que o SVN não passe a tratar as diferentes formatações de código como alterações no arquivo. Para facilitar as configurações o BIS já tem um arquivo de formatação, para usa-lo basta seguir os seguintes passos:

  1. Vá em "Window -> Preferences"
  2. Na janela que abre vá em "Java -> Code Style -> Formatter" e clique no botão "Import..."
  3. Escolha o arquivo "codeformat-eclipse.xml" na pasta "etc\Environment Setup" do projeto "BIS"

Configurar o Eclipse para Organizar os Imports

Assim como a formatação de código, a organização de imports precisa ser feita seguindo as mesmas regras para evitar que o SVN indique alterações a cada "organização" ao invés de cada import alterado. Para isso vá no menu Windows -> Preferences e na aba de configuração Java -> Code Style -> Organize Imports, e a configure como a imagem abaixo:

Automatizando as Formatações ao Salvar o Código

Algumas ações podem ser definidas no eclipse para que realize automaticamente ao salvar, automatizando algumas funções que acabam sendo esquecidas pelo desenvolvedor. Para isso vá no menu Window -> Preferences, em seguida escolha a configuração em Java -> Editor -> Save Actions e configure como a imagem abaixo:

Criando Templates de Códigos

Para facilitar e padronizar alguns códigos o eclipse pode ser configurado para gerar "templates de códigos" automaticamente. As orientações abaixo são uma sugestão de trabalho, não necessariamente uma obrigação.

Para criar esses e outros templates vá no menu Window -> Preferences e na configuração Java -> Editor -> Templates. Click em New e crie o template desejado.

JavaDOC de Classe

O Javadoc de classe tem a finalidade de fazer uma prévia da função da classe, identificar o autor e a data de sua criação.

  • Nome: ccbis
  • Descrição: Comentário/JavaDOC de Classe do BIS
Pattern
/**
 * Description: ${cursor}.<br>
 * 
 * @author Nome do Author
 * @since 10.0 (${date})
 */
  1. Troque o nome do autor para o nome do desenvolvedor
  2. Corrija o número da versão sempre que a versão em que estiver trabalho for alterada.

Eventualmente, quando um desenvolvedor "assume" a classe de outro desenvolvedor ou faz alguma alteração significativa durante o processo de alteração deve ser acrescida a tag abaixo logo a seguir da última @version ou abaixo da @since:

@version - X.X.X - Author - (...)

Onde:

  • x.x.x - é a versão em que a alteração foi feita, e;
  • (...) - é a descrição das alterações ou mudanças realizadas.

Android Studio

Para desenvolvimento das aplicações para a plataforma Android e necessário preparar o Android Studio

Instalação do Android Studio

  1. Faça o download do Android Studio aqui.
  2. Siga os passos para completar a instalação conforme apresentados no wizard.

Instalação de Equipamento para Debug

Para realizar o debug do software em um equipamento com Android é necessário instalar o driver USB para depuração de acordo com o fabricante. Consulte o download aqui.

Depois que ele for reconhecido corretamente, é preciso liberar o aparelho para a realização de depuração via USB. Para isso siga os seguintes passos:

  1. Abra as Configurações;
  2. Selecione Sobre o dispositivo;
  3. Pressione 7 vezes Número de Compilação / Versão Build / Número da versão;
  4. Volte para as Configurações;
  5. Escolha Opções do Desenvolvedor e ative-a, bem como extras;
  6. Habilite Depuração de USB.

Configuração do SVN

Instalação do TortoiseSVN
O Android Studio necessita de um cliente para realizar as funções de SVN, caso ainda não tenha instalado, execute a instalação do TortoiseSVN antes de continuar.


  1. Vá em File > Settings > Version Control > Subversion e marque a opção Use command line cliente:
    1. Na instalação padrão o caminho seria c:\Program Files\TortoiseSVN\bin\svn.exe.
  1. Abra o projeto feito o checkout pelo TortoiseSVN

Instalação do TortoiseSVN (Client SVN Windows)

Para operação com o SVN (se não for integrada e outra aplicação/IDE) seré necessário a utilização de um cliente. Neste caso utilizamos o Tortoise, um dos clientes mais populares e completos para windows.

  1. Faça o download aqui.
  2. Execute a instalação e siga os passos do Wizard garantindo que a opção "command line client tools" será instalada.

Checkout do Projeto pelo TortoiseSVN

  1. Cria a pasta onde o projeto deve ser colocado.
  2. Clique com o direito na pasta recém criada e escolha SVN Checkout.
  3. Navegue até o ponto do checkout desejado pelo browser, e escolha Checkout Depth como Fully recursive.

MySQL Workbench

O MySQL Workbench é uma ferramenta oferecida pela própria MySQL para planejamento e gerenciamento do banco de dados. Os diagramas de banco de dados do BIS são feitas utilizando esta ferramenta. A instalação não tem nenhuma dificuldade, basta seguir os passos do Wizard se utilizada o instalador para windows, ou descompactar a pasta se usada a versão sem instalador.


Versão do Workbench
A versão do MySQL Workbench deve ser a mesma utilizada por toda a equipe de desenvolvimento. Isso porque os arquivos salvos nas versões mais recentes da ferramenta não podem ser abertos nas anteriores. A atualização da versão deve ser conversada com toda a equipe.

Emulador do SAT

Desinstalar Versões Anteriores antes de Atualizar
O instalador do emulador não suporta atualizações corretamente, por isso, caso tenha uma versão do emulador já instalado é recomendável realizar a desinstalação antes. Para isso utilize o Painel de Controle do Windows para desinstalar o "Emulador SAT". As demais instalações não geram entrada na tela de programas instalados, neste caso apague a pasta C:\Program Files (x86)\SAT-CFe e todo o seu conteúdo.


  • Faça o Download do Emulador do SAT aqui. Na ocasião da escrita a versão do emulador é a 2.9.4.


Manual de Instalação
Na mesma página de download, na seção de 'Manuais' é possível encontrar o manual de procedimentos para instalação do Emulador. Embora seguir aqui seja mais "rápido", alguma mudança na versão pode ter trocado os procedimentos e ser necessário a realização de outros procedimentos.


  • Descompacte o conteúdo em uma pasta temporária.
  • Instale os arquivos Setup-Emulador_OffLine_v2_9_4.exe e Setup-Ativacao_v2_2_5.exe, siga os passos da instalação.
    Não é necessário instalar o arquivo Setup-AC_v2_2_7.exe uma vez que ele só tem a função de substituir a Automação Comercial - o próprio BIS.
  • Copie a Pasta SAT presente no zip para C:\SAT
  • Na pasta “SAT” abra o arquivo configuracoes.xml. Modifique <versaoSchema> e <versaoLayoutCFe> de acordo com a versão da Especificação do SAT para a qual o Aplicativo Comercial será programado.
  • O instalador do Emulador cria um atalho no Desktop "virado" direto para o jar executável. Normalmente ao executar pelo JAR o menu de configuração do Emulador não aparece (algum bug no emulador). Corrija o atalho para que ele não execute o jar diretamente, mas sim execute o java.exe. (Ex: C:\Windows\System32\java.exe -jar "C:\Program Files (x86)\SAT-CFe\Emulador\Emulador SAT-CFe.jar")

Ativação do Emulador do SAT

A ativação do emulador pode ser feita diretamente pelo BISSatHost. E vamos utiliza-lo aqui ao invés do aplicativo de Ativação que vêm com o emulador, assim já incluímos os passos de configuração do BISSatHost para funcionar com o emulador.

  • Para funcionar com o Emulador, o BISSatHost deve ter a C:\SAT\SAT.dll dentro da pasta raiz do projeto do BISSatHost.


Maiúscula x Minuscula
O Emulador envia a DLL com o SAT maiúsculo e a extensão minúscula, para o BIS encontrar a biblioteca corretamente o nome da DLL deve estar toda em minuscúlo.


  • Abra o arquivo config.properties dentro da pasta raiz do BISSatHost e configure as seguintes propriedades para funcionar com o SAT Host:
bisserver.host=localhost
bisserver.port=2082
sat.codigoativacao=BynX53JHxvaj9Yb4TJP3lm8Jb7KBggQ9
sat.chaveassociacao=11111111111112222222222222211111111111111222222222222221111111111111122222222222222111111111111112222222222222211111111111111222222222222221111111111111122222222222222111111111111112222222222222211111111111111222222222222221111111111111122222222222222111111111111112222222222222211111111111111222222222222221111111111111122222222222222111111111
system.xmlbackupdir=./SAT/
system.logdir=./LOG/
socket.listen.port=2083
sat.cnpjContrib=11111111111111


Código de Ativação
O código de ativação inicial do emulador é 12345678, no arquivo de properties o código de ativação fica criptografado.


  • Inicie o BISERP e o programa BISSatHost. O BISERP deve estar ligado para garantir autenticação do usuário.
  • Escolha a opção At para iniciar a ativação do SAT e faça a autenticação.
  • Escolha o certificado 1 - AC-SAT/SEFAZ
  • CNPJ do Contribuinte deve ser 11111111111111. O Emulador só aceita esse CNPJ para funcionar.
  • No estado de ativação informe SP.

Associar Assinatura

  • Para associar a assinatura escolha a opção As no BISSatHost.
  • Autentique com um usuário que tenha permissão de configurar o SAT.
  • Caso tenha o arquivo c:\debug.txt no computador, o BISSatHost detecta que é modo desenvolvedor e oferece para já configurar as opções para o emulador automaticamente. Escolha S.
  • Confirme as opções com a opção S.
  • O Emulador do SAT deve aceitar a associação e estar pronto para ser utilizado pela aplicação.

Resolvendo Problemas

Eclipse: Target RunTime Not Found

Se for feito checkout do código antes de todo o ambiente ser configurado (JDK, Libraries, Servers, etc.) o eclipse pode ter dificuldade em perceber que a dependência já foi resolvida e o projeto continua apresentando erro. Um desses erros é o do Target Runtime. Mesmo depois de criado o servidor 'Glassfish 4.0' o projeto continua dando erro de que não foi encontrado. A maneira mais fácil de resolver isso é entrar em propriedades do projeto (clique com o direito no projeto -> Properties), depois em 'Target Runtimes' desmarque o 'Glassfish 4.0' e clique em Apply. Em seguida marque novamente o 'Glassfish 4.0' e clique em OK. Depois do projeto terminar o rebuild os erros de 'Target Runtime' devem desaparecer.

Eclipse: Continua com erro de compilação mesmo depois de tudo configurado

Algumas vezes mesmo depois de tudo configurado o Eclipse continua dando erro de compilação. As vezes é necessário reiniciar o eclipse para faze-lo carregar tudo novamente, ou abrir e fechar todos os projetos.

Se a reinicialização não resolver, tente forçar uma limpeza dos binários e recompilar todo o código. Para isso vá em Project > Clean, escolha Clean all projects e confirme.

GlassFish: Falha ao 'Pingar' MySQL

Caso durante a configuração do Pool de Conexões, o 'ping' falhe ao tentar conectar com o banco de dados verifique os seguintes passos:

  1. Verifique se o MySQL está ligado
  2. Se a biblioteca do JDBC do MySQL foi colocada na pasta correta. A pasta correta é a pasta lib que fica dentro da pasta do domínio. Ex: c:\glassfish4\glassfish\domains\BISERP\lib
  3. As definições do Pool estão exatamente como definidas no guia.
  4. Verifique a versão homologada do conector. Ao migrar para o MySQL 8 o conector 5.1.43 dava erro de "variável do sistema desconhecida 'tx_isolation'", isso pq ela teve o nome alterado. Atualizar para o conector 5.1.46 resolveu o problema.

Problemas de Conexão (Entre Glassfish / Banco de Dados / Eclipse / etc)

A falta de conexão pode ser um problema da aplicação não conseguir escutar a porta por ela já estar em uso por outra aplicação. Verifique se a aplicação que está com o Listen na porta desejada é a aplicação esperada.

No windows utilize o comando: netstat -aon | find "9009"

Este comando dá o PID do processo (último parâmetro impresso) que está escutando a porta.

Referências

  1. Para abrir a janela de serviços do windows:
    • Vá em Painel de Controle > Serviços, ou,
    • Digite services.msc na caixa executar.