DES:vRaptorExtJs
(→Documentação Externa) |
(→Procedimentos para que o Maven funcione nas aplicações da Unioeste usando o Netbeans 21 (Java 21) (11/03/2024)) |
||
(43 edições intermediárias de 5 usuários não apresentadas) | |||
Linha 4: | Linha 4: | ||
== Introdução == | == Introdução == | ||
− | Este documento descreve os padrões de desenvolvimento dos sistemas que utilizam a tecnologia '''vRaptor+ExtJS''' | + | Este documento descreve os padrões de desenvolvimento dos sistemas da UNIOESTE que utilizam a tecnologia '''vRaptor+ExtJS''' |
+ | |||
+ | === Pequeno histórico === | ||
+ | |||
+ | Em janeiro de 2010 iniciaram os estudos e desenvolvimento de sistemas na Unioeste em um padrão unificado, escrevendo aplicações web na plataforma java. | ||
+ | |||
+ | <li>Para a construção do "server side", iniciou-se uma pequena base de código compartilhado chamada "sharedev", esta fazendo uso do vRaptor. | ||
+ | O vRaptor iniciou na versão 3.1.2 e subiu algumas vezes de versão nos projetos, ficando muito tempo na versão 3.4.1, e em janeiro de 2016, foi atualizado para a versão 3.5.5. | ||
+ | |||
+ | <li>Para a construção do "client side" (interface) foram construídos alguns componentes que fazem uso do ExtJS, esses componentes também sendo compartilhados pelos sistemas. | ||
+ | As primeiras versões utilizavam ExtJS versão 3.3.1, sendo depois atualizada em alguns sistemas para 3.4, depois para versão 4, e atualmente para a versão 4.2.1, a qual também tem um código de componentes compartilhado no padrão mvc. | ||
+ | |||
+ | <li>Para os relatórios foi utilizado o Jasper Reports (desenhando os layouts com o iReport), utilizando a ideia de cadastrar os relatórios e seus filtros em banco. | ||
+ | O JasperReports iniciou com a versão 3.7.2 e depois foi atualizado para a versão 4.1.2, a qual não foi mais atualizada pois é necessário recompilar todos relatórios já existentes para funcionarem na nova versão. | ||
+ | |||
+ | Teste | ||
=== Documentação Externa === | === Documentação Externa === | ||
Linha 13: | Linha 28: | ||
<li>Fórum do ExtJS - [http://www.sencha.com/forum/ http://www.sencha.com/forum/] | <li>Fórum do ExtJS - [http://www.sencha.com/forum/ http://www.sencha.com/forum/] | ||
<li>Manual do ExtJS (Escrito pela comunidade) [http://www.sencha.com/learn/Ext_Manual http://www.sencha.com/learn/Ext_Manual] | <li>Manual do ExtJS (Escrito pela comunidade) [http://www.sencha.com/learn/Ext_Manual http://www.sencha.com/learn/Ext_Manual] | ||
+ | <li>Documentação ExtJS 7.7.0 - [https://docs.sencha.com/extjs/7.7.0/ https://docs.sencha.com/extjs/7.7.0/] | ||
<li>Aprenda sobre a biblioteca ExtJS [http://www.sencha.com/learn/Learn_About_the_Ext_JavaScript_Library http://www.sencha.com/learn/Learn_About_the_Ext_JavaScript_Library] | <li>Aprenda sobre a biblioteca ExtJS [http://www.sencha.com/learn/Learn_About_the_Ext_JavaScript_Library http://www.sencha.com/learn/Learn_About_the_Ext_JavaScript_Library] | ||
<li>Layout de Aplicação para Iniciantes - [http://www.extjs.com/learn/Tutorial:Application_Layout_for_Beginners_(Portuguese) http://www.extjs.com/learn/Tutorial:Application_Layout_for_Beginners_(Portuguese)] | <li>Layout de Aplicação para Iniciantes - [http://www.extjs.com/learn/Tutorial:Application_Layout_for_Beginners_(Portuguese) http://www.extjs.com/learn/Tutorial:Application_Layout_for_Beginners_(Portuguese)] | ||
Linha 18: | Linha 34: | ||
vRaptor | vRaptor | ||
<ul> | <ul> | ||
− | <li>Documentação do vRaptor - [ | + | <li>Documentação do vRaptor - [https://www.vraptor.org/pt/docs/ https://www.vraptor.org/pt/docs/] |
− | + | ||
<li>Download do Projeto Padrão - [http://vraptor.caelum.com.br/download.jsp http://vraptor.caelum.com.br/download.jsp] | <li>Download do Projeto Padrão - [http://vraptor.caelum.com.br/download.jsp http://vraptor.caelum.com.br/download.jsp] | ||
</ul> | </ul> | ||
Guia para Estudo | Guia para Estudo | ||
− | + | <ul> | |
− | + | <li>Apostila "Web ágil com VRaptor, Hibernate e AJAX" - [http://www.caelum.com.br/apostila-vraptor-hibernate/ http://www.caelum.com.br/apostila-vraptor-hibernate/] | |
+ | <li>Introdução ao Javascript - [https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/A_re-introduction_to_JavaScript https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/A_re-introduction_to_JavaScript] | ||
+ | <li>Apostila sobre Javascript - [http://www.scriptbrasil.com.br/download/apostila/837/ http://www.scriptbrasil.com.br/download/apostila/837/] | ||
+ | <li>Introdução sobre Extjs MVC - [http://blog.gustavohenrique.net/2012/02/introducao-ao-padrao-mvc-no-ext-js-4/ http://blog.gustavohenrique.net/2012/02/introducao-ao-padrao-mvc-no-ext-js-4/] | ||
+ | <li>Guia sobre arquitetura de sistemas em Extjs - [http://docs.sencha.com/extjs/6.0/application_architecture/application_architecture.html http://docs.sencha.com/extjs/6.0/application_architecture/application_architecture.html] | ||
+ | |||
+ | </ul> | ||
=== Sistemas que utilizam esta Tecnologia === | === Sistemas que utilizam esta Tecnologia === | ||
Linha 30: | Linha 51: | ||
<pre> | <pre> | ||
Sistema ExtJs SVN Responsáveis Status | Sistema ExtJs SVN Responsáveis Status | ||
− | Academus 4.2 MVC academus | + | Academus 4.2 MVC academus Tiago/Marcelo Producao/Desenvolvimento |
Almox 3 almox Tiago/Elton Producao | Almox 3 almox Tiago/Elton Producao | ||
− | AvaliacaoIns... - - - Producao | + | AvaliacaoIns... - - - Producao ??? |
− | Login 4. | + | Login 4.2 login Márcio Producao |
Minos 4.2 MVC minos_mvc Márcio Producao | Minos 4.2 MVC minos_mvc Márcio Producao | ||
− | Osiris 4. | + | Osiris 4.2 MVC osiris Tiago Producao |
+ | PIAD 4.2 MVC piad Tiago Desenvolvimento | ||
+ | pwmunioeste 4.2 MVC pwmunioeste Márcio Producao | ||
Relatum - relatum Tiago Producao | Relatum - relatum Tiago Producao | ||
− | |||
SGC 3 sgc Tiago Producao | SGC 3 sgc Tiago Producao | ||
SGCCR 4.2 MVC sgccr_mvc Tiago Producao | SGCCR 4.2 MVC sgccr_mvc Tiago Producao | ||
SGCV 3 sgcv Tiago Producao | SGCV 3 sgcv Tiago Producao | ||
− | + | SGEV 4.2 MVC sgev Débora Desenvolvimento | |
− | SGEV 4.2 MVC sgev | + | SGOC - - - Producao ??? |
− | SGOC - - - Producao | + | |
SGPDE 4.2 MVC sgpde_mvc Márcio Producao | SGPDE 4.2 MVC sgpde_mvc Márcio Producao | ||
SGPic 4.2 MVC sgpibic Lucas/Gean/Guilherme Producao/Desenvolvimento | SGPic 4.2 MVC sgpibic Lucas/Gean/Guilherme Producao/Desenvolvimento | ||
SGPPLS 4.2 MVC sgppls_mvc Alessandro Producao | SGPPLS 4.2 MVC sgppls_mvc Alessandro Producao | ||
− | + | SGRD 4.2 MVC sgrd_mvc Alessandro Producao | |
− | SGRD 4.2 MVC sgrd_mvc | + | SGRF 4.2 MVC sgrf Márcio Producao ??? |
− | + | Stricto 3 stricto Lucas/Juliano Producao/Desenvolvimento Migrando p/ 4.2 MVC | |
− | Desenvolvimento Parado: | + | Desenvolvimento Parado/Extinto: |
− | Pontus-Web 3 pontus_vraptor Elton | + | Pontus-Web 3 pontus_vraptor Elton Parado |
− | SGEM 4.1 sgem Márcio | + | SGA 3 sga_vraptor Tiago Extinto |
− | SGLCC 4.2 MVC sglcc_mvc Márcio | + | SGE 3 sge_vraptor Tiago Extinto |
− | SGPE 4.1 sgpe Márcio | + | SGEM 4.1 sgem Márcio Parado |
+ | SGLCC 4.2 MVC sglcc_mvc Márcio Parado | ||
+ | SGPE 4.1 sgpe Márcio Parado | ||
+ | SGT 3 sgt Márcio Extinto | ||
</pre> | </pre> | ||
Linha 173: | Linha 197: | ||
<li>web.xml (modificação das configurações do servidor de aplicação) - raramente | <li>web.xml (modificação das configurações do servidor de aplicação) - raramente | ||
</ul> | </ul> | ||
+ | |||
+ | == Informações atualizadas: como criar novo projeto == | ||
+ | |||
+ | ===Passo-a-passo para criar um sistema=== | ||
+ | <li>criar sistema, padrão e transações no CCM | ||
+ | <li>criar projeto no gitlab (copiando do sistema SIF, que é o com a tecnologia mais atual). A descrição de como fazer isso, está no wiki do Git. | ||
+ | <li>criar arquivo properties em /usr/local/sistemas/config no servidor com banco do sistema | ||
+ | <li>escolher uma imagem para o sistema e colocar em cdn.unioeste.br/images/systems/ | ||
+ | <li>fazer deploy pelo deployer, dizendo qual é o grupo em que ficará | ||
+ | |||
+ | === Tecnologias do Projeto mais atual === | ||
+ | |||
+ | Os sistemas mais atualizados são o Relatum e o SIF.<br> | ||
+ | Estes sistemas estão utilizam o '''Maven''' como gerenciador de dependências, com uma dependência direta apenas, que é a biblioteca "sharedev-vraptor4", baseado no framework '''vRaptor 4'''. | ||
+ | Esta biblioteca contém funções gerais de autenticação, controle de auditoria e transações, logs, conexão com banco de dados, e outras funções comuns a todos os sistemas. | ||
+ | <br> | ||
+ | A interface é feita utilizando-se do framework '''ExtJs 6''' (versão 6.2). A biblioteca de classes comuns está no projeto "sharedev-ext6" e é incluída no projeto por meio de um submódulo do git. | ||
+ | A biblioteca contem a viewport padrão com menus básicos de usuário, funcionalidade de CRUD (grids e janelas de edição simples) e outras extensões do ExtJs para funcionalidades úteis. | ||
+ | |||
+ | == Servidores == | ||
+ | |||
+ | Servidores Java | ||
+ | *200.201.88.170 midas | ||
+ | *200.201.88.171 java1 | ||
+ | *200.201.88.172 java2 | ||
+ | *200.201.88.174 master | ||
+ | *200.201.88.175 java5 (slave) | ||
+ | *200.201.88.182 java6 | ||
+ | *200.201.88.183 java7 | ||
+ | *200.201.88.184 java8 | ||
+ | |||
+ | -No 170 há uma instância do Tomcat 8.*; Nos demais há duas instâncias do Wildfly 8.* em cada máquina, trabalhando em cluster. | ||
+ | * 170 rodam aplicações tomcat; | ||
+ | * 171,172,183,184 rodam aplicações wildfly (login, academus, etc); | ||
+ | * 174,175,182 rodam relatórios no wildfly; | ||
== Padronizações vRaptor== | == Padronizações vRaptor== | ||
Linha 378: | Linha 437: | ||
* jtds 1.3.1 http://sourceforge.net/projects/jtds/files/ | * jtds 1.3.1 http://sourceforge.net/projects/jtds/files/ | ||
+ | == Configurar proxy no maven == | ||
+ | * No projeto maven desejado, clique com o botão direito no item "Arquivos do Projeto" | ||
+ | * Escolha "criar settings.xml" | ||
+ | * Edite este arquivo e inclua o trecho abaixo, mudando o usuário e senha para o seu | ||
+ | <pre> | ||
+ | <proxies> | ||
+ | <proxy> | ||
+ | <id>proxy-unioeste</id> | ||
+ | <active>true</active> | ||
+ | <protocol>http</protocol> | ||
+ | <username>nome.sobrenome</username> | ||
+ | <password>SuaSenha</password> | ||
+ | <host>proxy.unioeste.br</host> | ||
+ | <port>8080</port> | ||
+ | <nonProxyHosts>*.unioeste.br</nonProxyHosts> | ||
+ | </proxy> | ||
+ | </proxies> | ||
+ | </pre> | ||
+ | * Após realizar esta configuração, clique com o botão direito no item "Dependências" e escolha "Fazer download de dependências..." | ||
+ | * Serão baixadas todas as bibliotecas de que o projeto depende | ||
+ | |||
+ | |||
+ | == Configurar Simulação de Usuário (Somente Leitura) com Filtro Personalizado == | ||
+ | * Adicione a transação "cSimulaUsuarioL" ao padrão que irá simular outros usuários | ||
+ | * Verifique as Prioridades dos Padrões: quanto menor o número, maior a prioridade e mais irá simular (ex: padrão 0 simula todos, padrão 3 somente simula 4,5,6,etc) | ||
+ | * Adicione uma SQL de filtro na tabela PdrTrnAvancado (pelo CCM ou da maneira ABAIXO), que deve retornar todos usuários (PssFsc_Codigo) utilizando o filtro @PssFsc_Codigo que será injetado do usuário logado. | ||
+ | |||
+ | insert into PdrTrnAvancado (Trn_Codigo,Pdr_Codigo,TrnTbl_NmTabela, TrnTblCmp_NmCampo, PdrTrnAvn_Filtro, TrnPrmAcs_Tipo, PdrTrnAvn_Comando) | ||
+ | values ('cSimulaUsuariol','PadraoMaiorQueQuerSimular','Geral','PadraoMenorASerSimulado','select PssFsc_Codigo from PssFisica where PssFsc_Codigo = @PssFsc_Codigo', 'G', '') | ||
+ | |||
+ | * Será usada a seguinte funcao para busca dos padroes possíveis: | ||
+ | exec spRtrVlrUnicoComResultSet 'Geral','PadraoMenorASerSimulado','PadraoMaiorQueQuerSimular','cSimulaUsuarioL' | ||
+ | |||
+ | : ''PadraoMenorASerSimulado'': padrão que se deseja simular | ||
+ | : ''PadraoMaiorQueQuerSimular'': padrão da pessoa que está querendo simular | ||
+ | |||
+ | == Problema para construir aplicação após fazer download das bibliotecas definidas no maven do projeto == | ||
+ | * Ao dar build no projeto, mostra o seguinte erro: Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: error in opening zip file | ||
+ | * Esse erro indica que algum dos arquivos .jar que fazem parte do projeto está corrompido | ||
+ | * Para descobrir qual é o arquivo, acesse a pasta de repositório do netbeans (p. ex., C:\Users\marcio.veronez\.m2\repository) e procure por todos os arquivos .jar | ||
+ | * Selecione todos os arquivos, clique com o botão direito, escolhe o item "7-Zip" (deve ter o 7-Zip instalado) e então a opção "Testar arquivo compactado" | ||
+ | * O 7-Zip irá testar todos os arquivos e informará qual é o arquivo corrompido | ||
+ | * Procure na internet uma versão correta do .jar corrompido e substitua o arquivo na pasta do repositório | ||
+ | |||
+ | == Procedimentos para que o Maven funcione nas aplicações da Unioeste usando o Netbeans 21 (Java 21) (11/03/2024) == | ||
+ | * Alterar as configurações do Maven do Netbeans para que utilize a jdk 8 do Java: ir no menu Tools -> Options. Na tela que abre, ir na aba Java e depois a aba Maven. Alterar a propriedade Default JDK para JDK 1.8 | ||
+ | * No arquivo pom.xml do projeto, alterar o caminho do repositório da Unioeste para https (pois a versão 21 do Netbeans não suporta http): | ||
+ | <pre> | ||
+ | <repositories> | ||
+ | <!--other repositories if any --> | ||
+ | <repository> | ||
+ | <id>project.local</id> | ||
+ | <name>project</name> | ||
+ | <url>https://netsr-vers01.unioeste.br/maven/</url> | ||
+ | </repository> | ||
+ | </repositories> | ||
+ | </pre> | ||
+ | |||
+ | * Criar um arquivo settings.xml na pasta Project Files (mesmo local aonde fica o pom.xml) e então colar a seguinte configuração dentro da tag settings, para que o Maven busque o repositório no caminho http: | ||
+ | <pre> | ||
+ | <mirrors> | ||
+ | <mirror> | ||
+ | <id>project.local</id> | ||
+ | <mirrorOf>project.local</mirrorOf> <!-- Must match repository id. --> | ||
+ | <name>Dummy mirror to unblock the team repo server</name> | ||
+ | <url>http://netsr-vers01.unioeste.br/maven/</url> | ||
+ | </mirror> | ||
+ | </mirrors> | ||
+ | </pre> | ||
+ | |||
+ | *Caso o projeto apresente problemas ao exibir caracteres acentuados, configure o projeto para usar codificação UTF-8: | ||
+ | **clique bom o botão direito no projeto e selecione "Properties" | ||
+ | **na tela que abre, selecione na esquerda o item "Sources" | ||
+ | **no rodapé da página que exibe as configurações, altere a propriedade "Encoding" para UTF-8 | ||
---- | ---- | ||
[[image:Voltar.jpg |Voltar]][[P%C3%A1gina_principal|Voltar a Página Inicial - Menu Sistemas]] | [[image:Voltar.jpg |Voltar]][[P%C3%A1gina_principal|Voltar a Página Inicial - Menu Sistemas]] |
Edição atual tal como 10h40min de 12 de junho de 2024
Voltar a Página Inicial - Menu Sistemas
[editar] Introdução
Este documento descreve os padrões de desenvolvimento dos sistemas da UNIOESTE que utilizam a tecnologia vRaptor+ExtJS
[editar] Pequeno histórico
Em janeiro de 2010 iniciaram os estudos e desenvolvimento de sistemas na Unioeste em um padrão unificado, escrevendo aplicações web na plataforma java.
[editar] Documentação Externa
ExtJS
- Documentação da API do ExtJS - http://dev.sencha.com/deploy/dev/docs/
- Centro de Aprendizagem ExtJS - http://www.sencha.com/learn/
- Fórum do ExtJS - http://www.sencha.com/forum/
- Manual do ExtJS (Escrito pela comunidade) http://www.sencha.com/learn/Ext_Manual
- Documentação ExtJS 7.7.0 - https://docs.sencha.com/extjs/7.7.0/
- Aprenda sobre a biblioteca ExtJS http://www.sencha.com/learn/Learn_About_the_Ext_JavaScript_Library
- Layout de Aplicação para Iniciantes - http://www.extjs.com/learn/Tutorial:Application_Layout_for_Beginners_(Portuguese)
vRaptor
- Documentação do vRaptor - https://www.vraptor.org/pt/docs/
- Download do Projeto Padrão - http://vraptor.caelum.com.br/download.jsp
Guia para Estudo
- Apostila "Web ágil com VRaptor, Hibernate e AJAX" - http://www.caelum.com.br/apostila-vraptor-hibernate/
- Introdução ao Javascript - https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/A_re-introduction_to_JavaScript
- Apostila sobre Javascript - http://www.scriptbrasil.com.br/download/apostila/837/
- Introdução sobre Extjs MVC - http://blog.gustavohenrique.net/2012/02/introducao-ao-padrao-mvc-no-ext-js-4/
- Guia sobre arquitetura de sistemas em Extjs - http://docs.sencha.com/extjs/6.0/application_architecture/application_architecture.html
[editar] Sistemas que utilizam esta Tecnologia
Sistema ExtJs SVN Responsáveis Status Academus 4.2 MVC academus Tiago/Marcelo Producao/Desenvolvimento Almox 3 almox Tiago/Elton Producao AvaliacaoIns... - - - Producao ??? Login 4.2 login Márcio Producao Minos 4.2 MVC minos_mvc Márcio Producao Osiris 4.2 MVC osiris Tiago Producao PIAD 4.2 MVC piad Tiago Desenvolvimento pwmunioeste 4.2 MVC pwmunioeste Márcio Producao Relatum - relatum Tiago Producao SGC 3 sgc Tiago Producao SGCCR 4.2 MVC sgccr_mvc Tiago Producao SGCV 3 sgcv Tiago Producao SGEV 4.2 MVC sgev Débora Desenvolvimento SGOC - - - Producao ??? SGPDE 4.2 MVC sgpde_mvc Márcio Producao SGPic 4.2 MVC sgpibic Lucas/Gean/Guilherme Producao/Desenvolvimento SGPPLS 4.2 MVC sgppls_mvc Alessandro Producao SGRD 4.2 MVC sgrd_mvc Alessandro Producao SGRF 4.2 MVC sgrf Márcio Producao ??? Stricto 3 stricto Lucas/Juliano Producao/Desenvolvimento Migrando p/ 4.2 MVC Desenvolvimento Parado/Extinto: Pontus-Web 3 pontus_vraptor Elton Parado SGA 3 sga_vraptor Tiago Extinto SGE 3 sge_vraptor Tiago Extinto SGEM 4.1 sgem Márcio Parado SGLCC 4.2 MVC sglcc_mvc Márcio Parado SGPE 4.1 sgpe Márcio Parado SGT 3 sgt Márcio Extinto
[editar] Árvore de diretorios de um projeto vRaptor+ExtJs
- build
- conf
- dist
- nbproject
- setup
- src
- baseconfig.properties - Arquivo de Configurações Gerais (Conexão com Banco,diretórios,etc)
- br
- unioeste
- projeto
- controller - Controladores de acesso da visão
- dao - Objetos de acesso aos dados
- modelo - Modelos das Entidades do Banco de Dados
- sessions
- CriadorDeSessionFactoryConfiguracoes.java - Arquivo de Configurações do Hibernate
- sharedev - Classes Java compartilhadas entre todos projetos
- web
- META-INF
- MANIFEST.MF
- context.xml - Configuração do contexto (diretório principal)
- WEB-INF
- jsp
- index
- genericJson.jsp - Página especial que retorna respostas em formato Json
- index.jsp - Página inicial que requisita os arquivos JavaScript do projeto
- index2.jsp - Página especial mostrada quando a conexão é fechada, ou o login não foi possível
- lib - Bibliotecas (jars) compartilhados entre todos os projetos
- relatorios - Contem os relatórios na fase de Desenvolvimento (diretório e subdiretórios gerados automaticamente)
- messages.properties
- web.xml - Configurações do servidor de aplicação
- ext - Arquivos da Biblioteca ExtJs
- icons - Ícones
- images - Imagens
- js
- frmCadastro
- frmGeral
- frmPesquisa
- uteis - Arquivos JavaScript compartilhados entre todos os projetos
- frmPrincipal.js - Configurações de Construção do menu do sistema e requisições iniciais
Legenda:
- diretorio - Diretório de arquivos compartilhados por todos os projetos por meio do SVN.
- arquivo.extensao - Arquivo de configuração. Importante para o funcionamento do sistema.
- diretorio - Diretório que contem os principais arquivos da aplicação.
- arquivo.extensao - Arquivo do projeto
- diretorio - Diretorio do projeto
[editar] Bibliotecas Java
Nome | Descrição | Pacotes Dependências/Relacionadas |
---|---|---|
vraptor | Framework MVC | vraptor |
jasper | Geração de relatórios | jasperreports,itext,commons-digester,groovy-all,fntArial |
hibernate | Framework de Persistência de Dados | hibernate,ejb3-persistence,hibernate-annotations,hibernate-validator¹ |
flexson | Serialização de objetos java para json | flexjson |
jtds | Conexão com o banco de dados | jtds |
Envio de emails | ||
gsp | Parser de sql | gsp |
commons-io | Utilidades para streams e arquivos | commons-io |
1 - Usado em pouquíssimos lugares, poderia remover
[editar] Atualização do Projeto
Quando for atualizar o projeto, alguns arquivos locais não compartilhados talvez precisem ser atualizados. Estes arquivos precisam estar atualizados e conforme os padrões para que o sistema interaja corretamente. Estes arquivos são em geral configurações que são diferentes para cada projeto, mas dentro de um padrão. Os arquivos são modificados ocasionalmente/raramente.
- index.jsp (novos arquivos JS compartilhados; atualização de forma de login) - ocasionalmente
- CriadorDeSessionFactoryConfiguracoes.java (novos beans compartilhados; atualização de forma de login) - ocasionalmente
- frmPrincipal.js (atualização da viewport principal ou na forma de login) - ocasionalmente
- bibliotecas do projeto (novas bibliotecas compartilhadas) - ocasionalmente
- basesconfig.properties (modificação das configurações gerais: conexão com banco, diretórios, etc) - ocasionalmente
- index2.jsp (modificação na página de logout ou página de sessão expirada/erro) - raramente
- genericJson.jsp (modificação na forma de responder objetos JSON) - raramente
- web.xml (modificação das configurações do servidor de aplicação) - raramente
[editar] Informações atualizadas: como criar novo projeto
[editar] Passo-a-passo para criar um sistema
[editar] Tecnologias do Projeto mais atual
Os sistemas mais atualizados são o Relatum e o SIF.
Estes sistemas estão utilizam o Maven como gerenciador de dependências, com uma dependência direta apenas, que é a biblioteca "sharedev-vraptor4", baseado no framework vRaptor 4.
Esta biblioteca contém funções gerais de autenticação, controle de auditoria e transações, logs, conexão com banco de dados, e outras funções comuns a todos os sistemas.
A interface é feita utilizando-se do framework ExtJs 6 (versão 6.2). A biblioteca de classes comuns está no projeto "sharedev-ext6" e é incluída no projeto por meio de um submódulo do git.
A biblioteca contem a viewport padrão com menus básicos de usuário, funcionalidade de CRUD (grids e janelas de edição simples) e outras extensões do ExtJs para funcionalidades úteis.
[editar] Servidores
Servidores Java
- 200.201.88.170 midas
- 200.201.88.171 java1
- 200.201.88.172 java2
- 200.201.88.174 master
- 200.201.88.175 java5 (slave)
- 200.201.88.182 java6
- 200.201.88.183 java7
- 200.201.88.184 java8
-No 170 há uma instância do Tomcat 8.*; Nos demais há duas instâncias do Wildfly 8.* em cada máquina, trabalhando em cluster.
- 170 rodam aplicações tomcat;
- 171,172,183,184 rodam aplicações wildfly (login, academus, etc);
- 174,175,182 rodam relatórios no wildfly;
[editar] Padronizações vRaptor
[editar] Nomes de Métodos dos Controladores
Os nomes de métodos devem seguir um padrão para serem identificados pelo controle de transações e de acesso.
- Métodos que farão escrita no banco de dados, devem iniciar por: adiciona, atualiza ou remove. Exemplos:
- adiciona
- atualiza
- atualizaEstadosEMunicipios
- removeTodosMunicipios
- Outros métodos, de leitura, devem iniciar preferencialmente por nomes como: lista, verifica, carrega. Exemplos:
- verifica
- lista
- listaTudo
- listaPorEstado
- listaTudoPorEstado
- carregaDadosPrincipais
[editar] Padronizações ExtJS
[editar] Tamanhos das Janelas
Para a exibição correta das janelas (considerando resolução 1024x768), os tamanhos devem estar entre:
- Largura: Mínimo de 500 e Máximo de 700
- Altura: Mínimo de 100 e Máximo de 500
[editar] Componentes
Campos Básicos
Campo | Tipo | Uso | Prefixo padrão |
---|---|---|---|
Ext.form.TextField | char,varchar | Strings menores | tf |
Ext.form.DateField | datetime | Campo de data com calendário para escolha | df |
Ext.form.TextArea | text,char,varchar | Strings maiores | ta |
Ext.form.NumberField | decimal, int | Números inteiros ou decimais (com/sem separação de casas) | nf |
Ext.form.CheckBox | bool - Boleanos (Sim/Não) | pode ser usado também com char (Ex: 'T','F') desde que seja feito um campo boolean transient no modelo da entidade | ck |
Ext.form.Radio | int,char,varchar | Strings ou números de identificação (poucas opções para ser uma nova tabela) | rd |
Ext.form.MoneyField | money | Dinheiro no formato 50.000,00 | mf |
Ext.form.HtmlEditor | text,char,varchar | Editor de Código HTML | he |
Ext.form.SliderField | int,decimal | Números inteiros ou decimais entre um intervalo | sf |
Ext.form.Label | text | textos | lb |
Campos Avançados
Campo | Tipo | Uso | Prefixo padrão |
---|---|---|---|
Ext.form.ComboBox | campo FK (int,char,varchar) com uma descrição (char,varchar) | Usado para poucos registros | cb |
UxBscGenerico | campo FK (int,char,varchar) com uma descrição (char,varchar) | Usado para vários registros | bsc |
Ext.form.TextFieldRemoteVal | int,char,varchar | Campo que faz a validação remotamente | tfr |
Ext.ux.form.FileUploadField | image,blob | Upload de arquivo único | fup |
AwesomeUploader | image,blob | Upload de vários arquivos | aup |
Campos Especiais
Campo | Tipo | Uso | Prefixo padrão |
---|---|---|---|
Ext.form.DisplayField | int,char,varchar | Campo não submetido e não validado | dsf |
Ext.form.Hidden | int,char,varchar,datetime,money,decimal,text | Campo escondido de qualquer tipo que será submetido | hf |
Outros Componentes
Campo | Tipo | Uso | Prefixo padrão |
---|---|---|---|
UxCdsGenerico | x | Janela de cadastro genérica | x |
UxPsqGenerico | x | Janela de pesquisa genérica | x |
UxGrdDuplo | x | Painel com grid duplo (filtrados/selecionados) | x |
[editar] Nomenclatura
- Campos de tela: Utilizar o padrão de prefixo correspondente ao campo que se está utilizando concatenado ao nome do campo no model. Exemplo: objeto Ext.form.TextField para edição de um campo pssFscNome: deve-se colocar o prefixo ft concatenado ao nome do campo pssFscNome, resultando no nome ftPssFscNome
[editar] Funcionamento do Controle de Acesso/Transações
[editar] vRaptor
Para que um controlador tenha seus métodos verificados pelo controle de acesso, a classe deve ter a seguinte anotação:
... @Resource @TrnName(value = "CodigoDaTransacaoDoControleDeAcesso") public class NomeDaEntidadeController { ...
[editar] ExtJs
Para que uma Tela/Transação apareça no menu do sistema e seja verificada pelo controle de acesso, é necessário que o parâmetro id do item de menu seja igual ao código da transação cadastrada no controle de transações.
... var nomeDaVariavel_ItemDeMenu = new Application.SubMenuTreeNode({ text:'Nome do Item de Menu', id: 'CodigoDaTransacaoDoControleDeAcesso', listeners: { click: function(){ appViewPort.addWindow(fQueRetornaAJanelaCorrespondenteAoItemDeMenu()); } } }); ...
[editar] Servidores Tomcat
Nossa estrutura consiste de:
- Um servidor para as aplicações (200.201.88.170), rodando com Linux Ubuntu e Tomcat 7
- Dois servidores para os relatórios, em cluster (200.201.88.171 e 200.201.88.172), rodando com Linux Ubuntu e Tomcat 7
- O cluster é implementado com o HAProxy
- Nos servidores em cluster, a pasta de deploy é compartilhada (o 171 é a matriz); dessa forma, o deploy feito em um servidor automaticamente é feito no outro também
- A pasta de configuração dos sistemas é um link simbólico para o servidor 170, ou seja, essa pasta fica compartilhada entre todos os 3 servidores
Links para configuração do JDK da Oracle:
http://www.magentodeveloperleedsuk.co.uk/installing-oracle-java-jdk-7-on-ubuntu-12-04-step-by-step/
Após instalar a nova JDK, remover a OpenJDK: sudo apt-get remove --purge openjdk-*
https://issues.apache.org/jira/browse/CASSANDRA-4275
[editar] Alterações para execução do projeto no JBoss 7
Para implantar o projeto no JBoss 7 é necessário ajustar o sistema para que o VRaptor faça um scan estático das classes. Isso significa que o VRaptor fará o mapeamento das classes anotadas antes da primeira subida do projeto. Isso deixa a subida mais lenta, mas posteriormente o sistema executa mais rapidamente, pois o scan não precisará mais ser feito.
Para que o scan estático funcione, é necessário incluir o seguinte trecho no arquivo nbbuil.xml do projeto no Netbeans (o arquivo pode ser localizado acessando a aba "Arquivos"):
... <target name="-post-compile"> <path id="build.classpath"> <fileset dir="build/web/WEB-INF/lib" includes="*.jar" /> </path> <java classpathref="build.classpath" classname="br.com.caelum.vraptor.scan.VRaptorStaticScanning" fork="true"> <arg value="build/web/WEB-INF/web.xml" /> <classpath refid="build.classpath" /> <classpath path="build/web/WEB-INF/classes" /> </java> </target> ...
[editar] Monitoramento do JBoss 7 utilizando o "Applications Manager 10", da empresa ManageEngine
To monitor JBoss, the http-invoker.sar should be deployed in the JBoss Server. The application (http-invoker.sar) is by default deployed in the JBoss server.
If the http port of the JBoss server is changed then the port number in the attribute InvokerURLSuffix should also be modified in jboss-3.2.0/server/default/deploy/http-invoker.sar/META-INF/jboss-service.xml file.More Info>>
To monitor JBoss 5.0.0 version and above jbossagent.sar should be deployed in JBoss server. To deploy follow the steps below Copy jbossagent.sar from location <Applications Manager home>/working/resources and paste under <JBOSS_HOME>/server/default/deploy.If you are running JBoss in different domain like all then deployment target folder would be <JBOSS_HOME>/server/all/deploy
[editar] Ferramentas para Desenvolvimento
Úteis
- 7zip 9.20 http://www.7-zip.org/download.html
- notepad++ 6.6.7 http://notepad-plus-plus.org/
- winscp 5.5.4 http://winscp.net/eng/download.php
- putty 0.6.3 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
- teamviewer 9 http://www.teamviewer.com/pt/
- tortoise 1.8.7 http://tortoisesvn.net/downloads.html
- git 1.9.5 https://git-scm.com/downloads
Desenvolvimento
- ireport 5.6.0 http://sourceforge.net/projects/ireport/
- netbeans 8.0 http://netbeans.org/downloads/
- probe 2.3.3 http://code.google.com/p/psi-probe/
- jdk 7u60 http://www.oracle.com/technetwork/pt/java/javase/downloads/index.html
- jtds 1.3.1 http://sourceforge.net/projects/jtds/files/
[editar] Configurar proxy no maven
- No projeto maven desejado, clique com o botão direito no item "Arquivos do Projeto"
- Escolha "criar settings.xml"
- Edite este arquivo e inclua o trecho abaixo, mudando o usuário e senha para o seu
<proxies> <proxy> <id>proxy-unioeste</id> <active>true</active> <protocol>http</protocol> <username>nome.sobrenome</username> <password>SuaSenha</password> <host>proxy.unioeste.br</host> <port>8080</port> <nonProxyHosts>*.unioeste.br</nonProxyHosts> </proxy> </proxies>
- Após realizar esta configuração, clique com o botão direito no item "Dependências" e escolha "Fazer download de dependências..."
- Serão baixadas todas as bibliotecas de que o projeto depende
[editar] Configurar Simulação de Usuário (Somente Leitura) com Filtro Personalizado
- Adicione a transação "cSimulaUsuarioL" ao padrão que irá simular outros usuários
- Verifique as Prioridades dos Padrões: quanto menor o número, maior a prioridade e mais irá simular (ex: padrão 0 simula todos, padrão 3 somente simula 4,5,6,etc)
- Adicione uma SQL de filtro na tabela PdrTrnAvancado (pelo CCM ou da maneira ABAIXO), que deve retornar todos usuários (PssFsc_Codigo) utilizando o filtro @PssFsc_Codigo que será injetado do usuário logado.
insert into PdrTrnAvancado (Trn_Codigo,Pdr_Codigo,TrnTbl_NmTabela, TrnTblCmp_NmCampo, PdrTrnAvn_Filtro, TrnPrmAcs_Tipo, PdrTrnAvn_Comando) values ('cSimulaUsuariol','PadraoMaiorQueQuerSimular','Geral','PadraoMenorASerSimulado','select PssFsc_Codigo from PssFisica where PssFsc_Codigo = @PssFsc_Codigo', 'G', )
- Será usada a seguinte funcao para busca dos padroes possíveis:
exec spRtrVlrUnicoComResultSet 'Geral','PadraoMenorASerSimulado','PadraoMaiorQueQuerSimular','cSimulaUsuarioL'
- PadraoMenorASerSimulado: padrão que se deseja simular
- PadraoMaiorQueQuerSimular: padrão da pessoa que está querendo simular
[editar] Problema para construir aplicação após fazer download das bibliotecas definidas no maven do projeto
- Ao dar build no projeto, mostra o seguinte erro: Caused by: java.lang.IllegalArgumentException: java.util.zip.ZipException: error in opening zip file
- Esse erro indica que algum dos arquivos .jar que fazem parte do projeto está corrompido
- Para descobrir qual é o arquivo, acesse a pasta de repositório do netbeans (p. ex., C:\Users\marcio.veronez\.m2\repository) e procure por todos os arquivos .jar
- Selecione todos os arquivos, clique com o botão direito, escolhe o item "7-Zip" (deve ter o 7-Zip instalado) e então a opção "Testar arquivo compactado"
- O 7-Zip irá testar todos os arquivos e informará qual é o arquivo corrompido
- Procure na internet uma versão correta do .jar corrompido e substitua o arquivo na pasta do repositório
[editar] Procedimentos para que o Maven funcione nas aplicações da Unioeste usando o Netbeans 21 (Java 21) (11/03/2024)
- Alterar as configurações do Maven do Netbeans para que utilize a jdk 8 do Java: ir no menu Tools -> Options. Na tela que abre, ir na aba Java e depois a aba Maven. Alterar a propriedade Default JDK para JDK 1.8
- No arquivo pom.xml do projeto, alterar o caminho do repositório da Unioeste para https (pois a versão 21 do Netbeans não suporta http):
<repositories> <!--other repositories if any --> <repository> <id>project.local</id> <name>project</name> <url>https://netsr-vers01.unioeste.br/maven/</url> </repository> </repositories>
- Criar um arquivo settings.xml na pasta Project Files (mesmo local aonde fica o pom.xml) e então colar a seguinte configuração dentro da tag settings, para que o Maven busque o repositório no caminho http:
<mirrors> <mirror> <id>project.local</id> <mirrorOf>project.local</mirrorOf> <!-- Must match repository id. --> <name>Dummy mirror to unblock the team repo server</name> <url>http://netsr-vers01.unioeste.br/maven/</url> </mirror> </mirrors>
- Caso o projeto apresente problemas ao exibir caracteres acentuados, configure o projeto para usar codificação UTF-8:
- clique bom o botão direito no projeto e selecione "Properties"
- na tela que abre, selecione na esquerda o item "Sources"
- no rodapé da página que exibe as configurações, altere a propriedade "Encoding" para UTF-8