https://www.pje.jus.br/wiki/api.php?action=feedcontributions&user=Marcelo.campos&feedformat=atomPJe - Contribuições do usuário [pt-br]2024-03-29T01:33:00ZContribuições do usuárioMediaWiki 1.20.0https://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2020-12-09T22:55:36Z<p>Marcelo.campos: /* Versão Atual: 1.0.20 */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
=== '''Versão Atual: 1.0.20''' ===<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" style="width: 300px;" |Download<br />
|-<br />
! colspan="1" style="width: 250px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[https://cnj-pje-programs.s3-sa-east-1.amazonaws.com/pje-office/PJeOffice.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[https://cnj-pje-programs.s3-sa-east-1.amazonaws.com/pje-office/pje-office_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[https://cnj-pje-programs.s3-sa-east-1.amazonaws.com/pje-office/pje-office_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[https://cnj-pje-programs.s3-sa-east-1.amazonaws.com/pje-office/pje-office_amd64.deb pje-office_amd64.deb]<br />
|-<br />
|'''Unix'''<br />
|[https://cnj-pje-programs.s3-sa-east-1.amazonaws.com/pje-office/pje-office_unix_no_embedded.tar.gz pje-office_unix_no_embedded.tar.gz]<br />
|}<br />
<br />
== Verões Anteriores do PJeOffice ==<br />
[http://ftp.pje.jus.br/pje/programs Acessar Versões Anteriores]<br />
<br />
== Orientações para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração do PJeOffice ==<br />
<br />
=== Modo simples (somente windows) ===<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
<br><br />
----<br />
<br />
=== Modo avançado ===<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
<br><br />
----<br />
<br />
=== Configurando a solicitação de senha do certificado ===<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
<br><br />
----<br />
<br />
=== PJeOffice no MAC ===<br />
<br />
'''Atenção! -''' Tokens cujos modelos pertencem à família G & D Burti Startsign Crypto USB Token, não são suportados para utilização em conjunto com o PJe-Office no sistema macOS. Apesar de ser possível configurar esse modelo de token seguindo os passos deste tutorial, ocorrem erros (ainda sem solução) que impedem que os usuários acessem o PJe utilizando o PJe-Office. Relatos de erros normalmente estão associados às versões de macOS mais utilizadas (10.13 e posteriores). Por essa razão, não recomendamos a aquisição desse token para os usuários de macOS que necessitem trabalhar com o sistema PJe.<br />
<br />
:'''Passo 1''': Encontrar o ícone do PJe Office que estará no canto superior direita da tela, próximo a hora do computador.<br />
<br />
:'''Passo 2''': Clicar no ícone do PJeOffice e selecionar a opção '''Sistema'''.<br />
<br />
:[[Arquivo:Mac tela sistema.jpg]]<br />
<br />
:'''Passo 3''': Na tela PJeOffice - Sistema, clicar 5 vezes seguida no número da versão que aparece na frente do nome PJeOffice (à medida que os cliques for realizado, irá aparecer um texto informando quantos cliques faltam para habilitar o modo desenvolvedor). Após clicar 5 vezes aparecerá a mensagem: "Modo Desenvolvedor Habilitado".<br />
<br />
:[[Arquivo:Mac pjeoffice sistema.jpg]]<br />
<br />
:'''Passo 4''': Após habilitar o modo desenvolvedor, clicar no botão OK e abrir a configuração do certificado novamente. A aba PKCS11 estará habilitada e permitirá a adição do seu certificado.<br />
<br />
:'''Passo 5''': Para adicionar o certificado manualmente, clicar em adicionar e dentro do diretório '''Macintosh HD''', seguir o caminho das pastas: “/usr/local/lib/”. Nessa pasta adicionar o arquivo “libaetpkss.dylib” ou similar.<br />
<br />
:'''Passo 6''': certificado aparecerá na aba avançado, clicar em cima do nome e será requisitado a inserir o PIN. Após essa ação, clique em concluir.<br />
<br />
:'''Passo 7''': Acesse o Site do PJe e clique no botão "Certificado Digital", para acessar o sistema.<br />
<br />
<br><br />
<br />
=== PJeOffice no Linux ===<br />
<br />
:'''Passo 1''': Realizar o download do arquivo correspondente.<br />
<br />
:'''Passo 2''': Descompactar o arquivo.<br />
<br />
:'''Passo 3''': Pelo terminal Linux, acesse a pasta correspondente ao arquivo descompactado.<br />
<br />
:'''Passo 4''':Execute o comando '''./pjeOffice.sh &'''.<br />
<br />
<br><br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
O PJeOffice salva os arquivo assinado com a extensão "[''Nome_do_arquivo''].PDF.P7S". Esse formato indica que o arquivo foi assinado digitalmente e podem ser abertos em programas que interpretam arquivos PDF. É importante ressaltar que o PJe não aceita arquivos com essa extensão tendo em vista que a assinatura de documentos é realizada online no sistema.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2019-09-07T01:43:43Z<p>Marcelo.campos: /* Versão Atual: 1.0.18 */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
=== '''Versão Atual: 1.0.19''' ===<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" style="width: 300px;" |Download<br />
|-<br />
! colspan="1" style="width: 250px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_amd64.deb pje-office_amd64.deb]<br />
|-<br />
|'''Unix'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_unix_no_embedded.tar.gz pje-office_unix_no_embedded.tar.gz]<br />
|}<br />
<br />
== Verões Anteriores do PJeOffice ==<br />
[http://ftp.pje.jus.br/pje/programs Acessar Versões Anteriores]<br />
<br />
== Orientações para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração do PJeOffice ==<br />
<br />
=== Modo simples (somente windows) ===<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
<br><br />
----<br />
<br />
=== Modo avançado ===<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
<br><br />
----<br />
<br />
=== Configurando a solicitação de senha do certificado ===<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
<br><br />
----<br />
<br />
=== PJeOffice no MAC ===<br />
<br />
:'''Passo 1''': Encontrar o ícone do PJe Office que estará no canto superior direita da tela, próximo a hora do computador.<br />
<br />
:'''Passo 2''': Clicar no ícone do PJeOffice e selecionar a opção '''Sistema'''.<br />
<br />
:[[Arquivo:Mac tela sistema.jpg]]<br />
<br />
:'''Passo 3''': Na tela PJeOffice - Sistema, clicar 5 vezes seguida no número da versão que aparece na frente do nome PJeOffice (à medida que os cliques for realizado, irá aparecer um texto informando quantos cliques faltam para habilitar o modo desenvolvedor). Após clicar 5 vezes aparecerá a mensagem: "Modo Desenvolvedor Habilitado".<br />
<br />
:[[Arquivo:Mac pjeoffice sistema.jpg]]<br />
<br />
:'''Passo 4''': Após habilitar o modo desenvolvedor, clicar no botão OK e abrir a configuração do certificado novamente. A aba PKCS11 estará habilitada e permitirá a adição do seu certificado.<br />
<br />
:'''Passo 5''': Para adicionar o certificado manualmente, clicar em adicionar e dentro do diretório '''Macintosh HD''', seguir o caminho das pastas: “/usr/local/lib/”. Nessa pasta adicionar o arquivo “libaetpkss.dylib” ou similar.<br />
<br />
:'''Passo 6''': O certificado aparecerá na aba avançado, clicar em cima do nome e será requisitado a inserir o PIN.<br />
<br />
:'''Passo 7''': Realize o acesso utilizando o modo de assinatura Local ou PJeOffice e não o Java. Para mudar, clicar em cima do modo de assinatura e mudar o modo de acesso.<br />
<br />
<br><br />
<br />
=== PJeOffice no Linux ===<br />
<br />
:'''Passo 1''': Realizar o download do arquivo correspondente.<br />
<br />
:'''Passo 2''': Descompactar o arquivo.<br />
<br />
:'''Passo 3''': Pelo terminal Linux, acesse a pasta correspondente ao arquivo descompactado.<br />
<br />
:'''Passo 4''':Execute o comando '''./pjeOffice.sh &'''.<br />
<br />
<br><br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
O PJeOffice salva os arquivo assinado com a extensão "[''Nome_do_arquivo''].PDF.P7S". Esse formato indica que o arquivo foi assinado digitalmente e podem ser abertos em programas que interpretam arquivos PDF. É importante ressaltar que o PJe não aceita arquivos com essa extensão tendo em vista que a assinatura de documentos é realizada online no sistema.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2019-07-15T17:59:01Z<p>Marcelo.campos: /* Versão Atual: 1.0.18 */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
=== '''Versão Atual: 1.0.18''' ===<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" style="width: 300px;" |Download<br />
|-<br />
! colspan="1" style="width: 250px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_amd64.deb pje-office_amd64.deb]<br />
|-<br />
|'''Unix'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_unix_no_embedded.tar.gz pje-office_unix_no_embedded.tar.gz]<br />
|}<br />
<br />
<br />
== Verões Anteriores do PJeOffice ==<br />
[http://ftp.pje.jus.br/pje/programs Acessar Versões Anteriores]<br />
<br />
== Orientações para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração do PJeOffice ==<br />
<br />
=== Modo simples (somente windows) ===<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
<br><br />
----<br />
<br />
=== Modo avançado ===<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
<br><br />
----<br />
<br />
=== Configurando a solicitação de senha do certificado ===<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
<br><br />
----<br />
<br />
=== PJeOffice no MAC ===<br />
<br />
:'''Passo 1''': Encontrar o ícone do PJe Office que estará no canto superior direita da tela, próximo a hora do computador.<br />
<br />
:'''Passo 2''': Clicar no ícone do PJeOffice e selecionar a opção '''Sistema'''.<br />
<br />
:[[Arquivo:Mac tela sistema.jpg]]<br />
<br />
:'''Passo 3''': Na tela PJeOffice - Sistema, clicar 5 vezes seguida no número da versão que aparece na frente do nome PJeOffice (à medida que os cliques for realizado, irá aparecer um texto informando quantos cliques faltam para habilitar o modo desenvolvedor). Após clicar 5 vezes aparecerá a mensagem: "Modo Desenvolvedor Habilitado".<br />
<br />
:[[Arquivo:Mac pjeoffice sistema.jpg]]<br />
<br />
:'''Passo 4''': Após habilitar o modo desenvolvedor, clicar no botão OK e abrir a configuração do certificado novamente. A aba PKCS11 estará habilitada e permitirá a adição do seu certificado.<br />
<br />
:'''Passo 5''': Para adicionar o certificado manualmente, clicar em adicionar e dentro do diretório '''Macintosh HD''', seguir o caminho das pastas: “/usr/local/lib/”. Nessa pasta adicionar o arquivo “libaetpkss.dylib” ou similar.<br />
<br />
:'''Passo 6''': O certificado aparecerá na aba avançado, clicar em cima do nome e será requisitado a inserir o PIN.<br />
<br />
:'''Passo 7''': Realize o acesso utilizando o modo de assinatura Local ou PJeOffice e não o Java. Para mudar, clicar em cima do modo de assinatura e mudar o modo de acesso.<br />
<br />
<br><br />
<br />
=== PJeOffice no Linux ===<br />
<br />
:'''Passo 1''': Realizar o download do arquivo correspondente.<br />
<br />
:'''Passo 2''': Descompactar o arquivo.<br />
<br />
:'''Passo 3''': Pelo terminal Linux, acesse a pasta correspondente ao arquivo descompactado.<br />
<br />
:'''Passo 4''':Execute o comando '''./pjeOffice.sh &'''.<br />
<br />
<br><br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
O PJeOffice salva os arquivo assinado com a extensão "[''Nome_do_arquivo''].PDF.P7S". Esse formato indica que o arquivo foi assinado digitalmente e podem ser abertos em programas que interpretam arquivos PDF. É importante ressaltar que o PJe não aceita arquivos com essa extensão tendo em vista que a assinatura de documentos é realizada online no sistema.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2019-07-15T17:56:52Z<p>Marcelo.campos: /* Aplicativo PJeOffice para instalação */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
=== '''Versão Atual: 1.0.18''' ===<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" style="width: 300px;" |Download<br />
|-<br />
! colspan="1" style="width: 250px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_amd64.deb pje-office_amd64.deb]<br />
|-<br />
|'''Unix'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_unix_no_embedded.tar.gz pje-office_unix_no_embedded.tar.gz]<br />
|}<br />
<br />
== Orientações para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração do PJeOffice ==<br />
<br />
=== Modo simples (somente windows) ===<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
<br><br />
----<br />
<br />
=== Modo avançado ===<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
<br><br />
----<br />
<br />
=== Configurando a solicitação de senha do certificado ===<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
<br><br />
----<br />
<br />
=== PJeOffice no MAC ===<br />
<br />
:'''Passo 1''': Encontrar o ícone do PJe Office que estará no canto superior direita da tela, próximo a hora do computador.<br />
<br />
:'''Passo 2''': Clicar no ícone do PJeOffice e selecionar a opção '''Sistema'''.<br />
<br />
:[[Arquivo:Mac tela sistema.jpg]]<br />
<br />
:'''Passo 3''': Na tela PJeOffice - Sistema, clicar 5 vezes seguida no número da versão que aparece na frente do nome PJeOffice (à medida que os cliques for realizado, irá aparecer um texto informando quantos cliques faltam para habilitar o modo desenvolvedor). Após clicar 5 vezes aparecerá a mensagem: "Modo Desenvolvedor Habilitado".<br />
<br />
:[[Arquivo:Mac pjeoffice sistema.jpg]]<br />
<br />
:'''Passo 4''': Após habilitar o modo desenvolvedor, clicar no botão OK e abrir a configuração do certificado novamente. A aba PKCS11 estará habilitada e permitirá a adição do seu certificado.<br />
<br />
:'''Passo 5''': Para adicionar o certificado manualmente, clicar em adicionar e dentro do diretório '''Macintosh HD''', seguir o caminho das pastas: “/usr/local/lib/”. Nessa pasta adicionar o arquivo “libaetpkss.dylib” ou similar.<br />
<br />
:'''Passo 6''': O certificado aparecerá na aba avançado, clicar em cima do nome e será requisitado a inserir o PIN.<br />
<br />
:'''Passo 7''': Realize o acesso utilizando o modo de assinatura Local ou PJeOffice e não o Java. Para mudar, clicar em cima do modo de assinatura e mudar o modo de acesso.<br />
<br />
<br><br />
<br />
=== PJeOffice no Linux ===<br />
<br />
:'''Passo 1''': Realizar o download do arquivo correspondente.<br />
<br />
:'''Passo 2''': Descompactar o arquivo.<br />
<br />
:'''Passo 3''': Pelo terminal Linux, acesse a pasta correspondente ao arquivo descompactado.<br />
<br />
:'''Passo 4''':Execute o comando '''./pjeOffice.sh &'''.<br />
<br />
<br><br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
O PJeOffice salva os arquivo assinado com a extensão "[''Nome_do_arquivo''].PDF.P7S". Esse formato indica que o arquivo foi assinado digitalmente e podem ser abertos em programas que interpretam arquivos PDF. É importante ressaltar que o PJe não aceita arquivos com essa extensão tendo em vista que a assinatura de documentos é realizada online no sistema.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2018-05-21T16:59:07Z<p>Marcelo.campos: /* Criação dos bancos de dados */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
ou<br />
<br />
CREATE DATABASE pje<br />
WITH <br />
OWNER = postgres<br />
ENCODING = 'LATIN1'<br />
LC_COLLATE = 'C'<br />
LC_CTYPE = 'C'<br />
TEMPLATE=template0<br />
CONNECTION LIMIT = -1;<br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [http://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
==== Configuração de parâmetros para modo de testes/homologação ====<br />
Por padrão a aplicação do PJe (a partir da versão 2.0.0.1) sobe em modo de produção ativa. Caso o ambiente configurado seja em contexto de testes ou homologação, deve-se adicionar o parâmetro "-Dpje.producao=false" no arquivo run.conf do wildfly.<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server.war<br />
ou<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server-exec.jar<br />
<br />
2) Entrar na pasta "server" para iniciar o serviço (jar).<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Tomcat deployment (war)<br />
# incluir diretiva java -Dbr.jus.cnj.jcr.serverProperties=/etc/tomcat7/jcr-storage-server.properties no startup do tomcat<br />
# Iniciar o serviço tomcat<br />
Exemplo de um arquivo jcr.properties:<br />
jcr.server.tempDir=/tmp/jackrabbit<br />
jcr.server.repoDir=/var/local/lib/jackrabbit<br />
jcr.server.maxFiles=500<br />
<br />
<br />
4) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|<nowiki>http://localhost:9000/storage/documents(jar) ou http://<SERVIDOR_TOMCAT>:8080/jcr-storage-server/documents para o war</nowiki><br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2018-05-10T17:58:30Z<p>Marcelo.campos: /* Configuração JCR-Storage */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [http://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
==== Configuração de parâmetros para modo de testes/homologação ====<br />
Por padrão a aplicação do PJe (a partir da versão 2.0.0.1) sobe em modo de produção ativa. Caso o ambiente configurado seja em contexto de testes ou homologação, deve-se adicionar o parâmetro "-Dpje.producao=false" no arquivo run.conf do wildfly.<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server.war<br />
ou<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server-exec.jar<br />
<br />
2) Entrar na pasta "server" para iniciar o serviço (jar).<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Tomcat deployment (war)<br />
# incluir diretiva java -Dbr.jus.cnj.jcr.serverProperties=/etc/tomcat7/jcr-storage-server.properties no startup do tomcat<br />
# Iniciar o serviço tomcat<br />
Exemplo de um arquivo jcr.properties:<br />
jcr.server.tempDir=/tmp/jackrabbit<br />
jcr.server.repoDir=/var/local/lib/jackrabbit<br />
jcr.server.maxFiles=500<br />
<br />
<br />
4) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|<nowiki>http://localhost:9000/storage/documents(jar) ou http://<SERVIDOR_TOMCAT>:8080/jcr-storage-server/documents para o war</nowiki><br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2018-05-10T17:57:46Z<p>Marcelo.campos: /* Configuração JCR-Storage */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [http://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
==== Configuração de parâmetros para modo de testes/homologação ====<br />
Por padrão a aplicação do PJe (a partir da versão 2.0.0.1) sobe em modo de produção ativa. Caso o ambiente configurado seja em contexto de testes ou homologação, deve-se adicionar o parâmetro "-Dpje.producao=false" no arquivo run.conf do wildfly.<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server.war<br />
ou<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server-exec.jar<br />
<br />
2) Entrar na pasta "server" para iniciar o serviço (jar).<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Tomcat deployment (war)<br />
# incluir diretiva java -Dbr.jus.cnj.jcr.serverProperties=/etc/tomcat7/jcr-storage-server.properties no startup do tomcat<br />
# Iniciar o serviço tomcat<br />
# Exemplo de um arquivo jcr.properties<br />
jcr.server.tempDir=/tmp/jackrabbit<br />
jcr.server.repoDir=/var/local/lib/jackrabbit<br />
jcr.server.maxFiles=500<br />
<br />
<br />
4) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|<nowiki>http://localhost:9000/storage/documents(jar) ou http://<SERVIDOR_TOMCAT>:8080/jcr-storage-server/documents para o war</nowiki><br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2018-05-10T17:57:08Z<p>Marcelo.campos: /* Configuração JCR-Storage */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [http://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
==== Configuração de parâmetros para modo de testes/homologação ====<br />
Por padrão a aplicação do PJe (a partir da versão 2.0.0.1) sobe em modo de produção ativa. Caso o ambiente configurado seja em contexto de testes ou homologação, deve-se adicionar o parâmetro "-Dpje.producao=false" no arquivo run.conf do wildfly.<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server.war<br />
ou<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server-exec.jar<br />
<br />
2) Entrar na pasta "server" para iniciar o serviço (jar).<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Tomcat deployment (war)<br />
# incluir diretiva java -Dbr.jus.cnj.jcr.serverProperties=/etc/tomcat7/jcr-storage-server.properties no startup do tomcat<br />
# Iniciar o serviço tomcat<br />
# Exemplo de um arquivo jcr.properties<br />
jcr.server.tempDir=/tmp/jackrabbit<br />
jcr.server.repoDir=/var/local/lib/jackrabbit<br />
jcr.server.maxFiles=500<br />
<br />
<br />
4) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|<nowiki>http://localhost:9000/storage/documents(jar) ou <nowiki>http://<SERVIDOR_TOMCAT>:8080/jcr-storage-server/documents para o war<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2018-05-10T17:49:30Z<p>Marcelo.campos: /* Configuração JCR-Storage */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [http://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
==== Configuração de parâmetros para modo de testes/homologação ====<br />
Por padrão a aplicação do PJe (a partir da versão 2.0.0.1) sobe em modo de produção ativa. Caso o ambiente configurado seja em contexto de testes ou homologação, deve-se adicionar o parâmetro "-Dpje.producao=false" no arquivo run.conf do wildfly.<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server.war<br />
ou<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server-exec.jar<br />
<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
<br />
4) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|'http://localhost:9000/storage/documents(jar)' ou 'http://<SERVIDOR_TOMCAT>:8080/jcr-storage-server/documents' para o war<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2018-05-10T17:48:26Z<p>Marcelo.campos: /* Configuração JCR-Storage */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [http://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
==== Configuração de parâmetros para modo de testes/homologação ====<br />
Por padrão a aplicação do PJe (a partir da versão 2.0.0.1) sobe em modo de produção ativa. Caso o ambiente configurado seja em contexto de testes ou homologação, deve-se adicionar o parâmetro "-Dpje.producao=false" no arquivo run.conf do wildfly.<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server.war<br />
ou<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server-exec.jar<br />
<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
<br />
4) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents para cr-storage-server-exec.jar ou http://<SERVIDOR_TOMCAT>:8080/jcr-storage-server/documents para o war<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2018-05-10T17:45:12Z<p>Marcelo.campos: /* Configuração JCR-Storage */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [http://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
==== Configuração de parâmetros para modo de testes/homologação ====<br />
Por padrão a aplicação do PJe (a partir da versão 2.0.0.1) sobe em modo de produção ativa. Caso o ambiente configurado seja em contexto de testes ou homologação, deve-se adicionar o parâmetro "-Dpje.producao=false" no arquivo run.conf do wildfly.<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server.war<br />
ou<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server-exec.jar<br />
<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2018-05-10T17:43:21Z<p>Marcelo.campos: /* Configuração DB-Storage */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [http://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
==== Configuração de parâmetros para modo de testes/homologação ====<br />
Por padrão a aplicação do PJe (a partir da versão 2.0.0.1) sobe em modo de produção ativa. Caso o ambiente configurado seja em contexto de testes ou homologação, deve-se adicionar o parâmetro "-Dpje.producao=false" no arquivo run.conf do wildfly.<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server.war<br />
<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2018-05-10T17:28:24Z<p>Marcelo.campos: /* Configuração JCR-Storage */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [http://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
==== Configuração de parâmetros para modo de testes/homologação ====<br />
Por padrão a aplicação do PJe (a partir da versão 2.0.0.1) sobe em modo de produção ativa. Caso o ambiente configurado seja em contexto de testes ou homologação, deve-se adicionar o parâmetro "-Dpje.producao=false" no arquivo run.conf do wildfly.<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server.war<br />
<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server.war<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2018-05-10T17:26:57Z<p>Marcelo.campos: /* Configuração DB-Storage */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [http://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
==== Configuração de parâmetros para modo de testes/homologação ====<br />
Por padrão a aplicação do PJe (a partir da versão 2.0.0.1) sobe em modo de produção ativa. Caso o ambiente configurado seja em contexto de testes ou homologação, deve-se adicionar o parâmetro "-Dpje.producao=false" no arquivo run.conf do wildfly.<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://ftp.cnj.jus.br/pje/programs/jcr-storage-server.war<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2018-03-21T21:00:16Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [http://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
==== Configuração de parâmetros para modo de testes/homologação ====<br />
Por padrão a aplicação do PJe (a partir da versão 2.0.0.1) sobe em modo de produção ativa. Caso o ambiente configurado seja em contexto de testes ou homologação, deve-se adicionar o parâmetro "-Dpje.producao=false" no arquivo run.conf do wildfly.<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2018-01-17T19:44:02Z<p>Marcelo.campos: /* Aplicativo PJeOffice para instalação */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" style="width: 300px;" |Download<br />
|-<br />
! colspan="1" style="width: 250px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_amd64.deb pje-office_amd64.deb]<br />
|-<br />
|'''Unix'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_unix_no_embedded.tar.gz pje-office_unix_no_embedded.tar.gz]<br />
|}<br />
<br />
== Orientações para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração do PJeOffice ==<br />
<br />
=== Modo simples (somente windows) ===<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
<br><br />
----<br />
<br />
=== Modo avançado ===<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
<br><br />
----<br />
<br />
=== Configurando a solicitação de senha do certificado ===<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
<br><br />
----<br />
<br />
=== PJeOffice no MAC ===<br />
<br />
:'''Passo 1''': Encontrar o ícone do PJe Office que estará no canto superior direita da tela, próximo a hora do computador.<br />
<br />
:'''Passo 2''': Clicar no ícone do PJeOffice e selecionar a opção '''Sistema'''.<br />
<br />
:[[Arquivo:Mac tela sistema.jpg]]<br />
<br />
:'''Passo 3''': Na tela PJeOffice - Sistema, clicar 5 vezes seguida no número da versão que aparece na frente do nome PJeOffice (à medida que os cliques for realizado, irá aparecer um texto informando quantos cliques faltam para habilitar o modo desenvolvedor). Após clicar 5 vezes aparecerá a mensagem: "Modo Desenvolvedor Habilitado".<br />
<br />
:[[Arquivo:Mac pjeoffice sistema.jpg]]<br />
<br />
:'''Passo 4''': Após habilitar o modo desenvolvedor, clicar no botão OK e abrir a configuração do certificado novamente. A aba PKCS11 estará habilitada e permitirá a adição do seu certificado.<br />
<br />
:'''Passo 5''': Para adicionar o certificado manualmente, clicar em adicionar e dentro do diretório '''Macintosh HD''', seguir o caminho das pastas: “/usr/local/lib/”. Nessa pasta adicionar o arquivo “libaetpkss.dylib” ou similar.<br />
<br />
:'''Passo 6''': O certificado aparecerá na aba avançado, clicar em cima do nome e será requisitado a inserir o PIN.<br />
<br />
:'''Passo 7''': Realize o acesso utilizando o modo de assinatura Local ou PJeOffice e não o Java. Para mudar, clicar em cima do modo de assinatura e mudar o modo de acesso.<br />
<br />
<br><br />
<br />
=== PJeOffice no Linux ===<br />
<br />
:'''Passo 1''': Realizar o download do arquivo correspondente.<br />
<br />
:'''Passo 2''': Descompactar o arquivo.<br />
<br />
:'''Passo 3''': Pelo terminal Linux, acesse a pasta correspondente ao arquivo descompactado.<br />
<br />
:'''Passo 4''':Execute o comando '''./pjeOffice.sh &'''.<br />
<br />
<br><br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
O PJeOffice salva os arquivo assinado com a extensão "[''Nome_do_arquivo''].PDF.P7S". Esse formato indica que o arquivo foi assinado digitalmente e podem ser abertos em programas que interpretam arquivos PDF. É importante ressaltar que o PJe não aceita arquivos com essa extensão tendo em vista que a assinatura de documentos é realizada online no sistema.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Navegador_PJeNavegador PJe2017-10-19T18:38:41Z<p>Marcelo.campos: </p>
<hr />
<div>[[Arquivo:Icone navegador pje.png|right|x150px]]<br />
O PJe possui alguns pré-requisitos para utilização do sistema, o que acarreta a necessidade de instalação e configuração local de várias ferramentas no computador do usuário. Com intuito de melhorar a experiência com o sistema PJe e dirimir as eventuais ocorrências na configuração dos computadores pessoais foi elaborado o aplicativo Navegador PJe.<br />
<br />
O Navegador PJe é uma versão customizada do navegador Mozilla Firefox para uso exclusivo do sistema PJe em todos Tribunais onde foi instalado e no próprio Conselho Nacional de Justiça. Devido a questões de segurança, orienta-se a não alterar as configurações do aplicativo.<br />
<br />
O objetivo do aplicativo é disponibilizar uma ferramenta pré-configurada para acesso ao sistema PJe englobando o Mozilla Firefox, o Java e as cadeias de certificados válidas, além de realizar automaticamente as atualizações necessárias proporcionando assim maior segurança para os usuários do sistema.<br />
<br />
Para os tribunais e clientes que já migraram para a versão 2.0 do PJe, recomendamos o uso do PJeOffice. Com o PJeOffice temos a liberdade do uso do qualquer navegador.<br />
<br />
== Dedicatória ==<br />
Não teríamos esse navegador sem a ajuda do '''Tribunal de Justica do Rio Grande do Norte'''. Na verdade, todo esse trabalho foi desenvolvido por aquele tribunal.<br />
<br />
== Público Alvo ==<br />
<br />
Todos os usuários que utilizam o sistema PJe nos tribunais, tais como:<br />
* advogados,<br />
* partes,<br />
* servidores,<br />
* magistrados, e<br />
* procuradores.<br />
<br />
== Considerações ==<br />
<br />
* O instalador disponível nessa página contém as versões do Mozilla Firefox e do Java compatíveis com o PJe, além de já estar habilitada a opção de popups do PJe.<br />
* Outras versões do Mozilla ou de outros navegadores instalados no seu equipamento não serão afetados por esta instalação.<br />
* A partir da versão 2, atualizada em 28/06/2016, o Navegador PJe está configurado para Usar as configurações de proxy do sistema operacional.<br />
<br />
<br />
<font color=green>'''IMPORTANTE:'''</font> <br />
<br>Para o funcionamento integral do aplicativo é necessário que o [[Configura%C3%A7%C3%A3o_do_Ambiente#Certificado_Digital| Certificado Digital]] do usuário esteja instalado e funcional, de acordo com as orientações do fornecedor do seu dispositivo (token ou cartão).<br />
<br />
== Aplicativo Navegador PJe para instalação ==<br />
<br />
Para iniciar o download do programa, siga os passos abaixo:<br />
<br />
<br />
'''Passo 1:''' Realize o download do arquivo e aguarde o download terminar. <br />
<br />
{| class="wikitable" border="1"<br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows'''<br />
|[http://ftp.pje.jus.br/pje/programs/navegadorpje.zip navegadorpje.zip]<br />
|}<br />
<br />
'''<font color=red>NOTA:</font>''' O Navegador PJe não reconhece ou suporta outros sistemas operacionais, além do Windows.<br />
<br />
<br><br />
'''Passo 2''': Após a conclusão da transferência, clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Propriedades".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje.jpg|750px]]<br><br><br />
<br />
'''Passo 3''': Na janela que se abre, na aba Geral, no item Segurança, clicar em Desbloquear e logo após em "OK".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje_01.jpg|300px]]<br><br><br />
<br />
'''Passo 4''': Clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Extrair Tudo...". <br />
<br><br> [[Arquivo:Extracao_portalpje.jpg|750px]] <br><br><br />
<br />
'''Passo 5''': Logo após, selecionar um destino para o arquivo e clicar em EXTRAIR.<br />
<br><br> [[Arquivo:Extrair_pasta.jpg]] <br><br><br />
<br />
'''Passo 6''': Depois de finalizada a operação, executar o arquivo '''navegadorpje.exe'''. Na tela do Programa de Instalação clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_1.png|500px]] <br><br><br />
<br />
'''Passo 7''': Marcar a opção '''"Eu aceito os termos do Contrato"''' e clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_2.png|500px]] <br><br> <br />
<br />
'''Passo 8''': Na tela seguinte, caso prefira o ícone para acesso ao aplicativo marque a opção "Criar um ícone na Área de Trabalho", clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar portalpje 2.1.png|500px]] <br><br> <br />
<br />
OBSERVAÇÃO: Se esta opção não estiver marcada, após a instalação será necessário acessar o Navegador PJe através do Menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
<br><br />
<br><br />
'''Passo 9''': Clicar em INSTALAR e aguardar a conclusão da instalação. Caso deseje que o programa seja inicializado ao final da instalação marcar a opção "Executar Naveghador PJe" e clicar em CONCLUIR.<br />
<br><br> [[Arquivo:Instalar_portalpje_6.jpg]] <br><br><br />
<br />
== Utilizando o Navegador PJe ==<br />
<br />
'''Passo 1:''' É possivel executar o Navegador PJe através do atalho disponível na área de trabalho [[Arquivo:012.png|50px]] ou através do menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
[[Arquivo:011.png]]<br />
<br />
<br />
Ao iniciar o Navegador PJe, ele exibe como página inicial a tela para escolher o Estado e o Tribunal que se deseja acessar.<br />
<br />
<br />
[[Arquivo:008.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Após selecionar o Estado e o Tribunal escolhido, clicar no botão "Ir ao site", que abrirá a tela do PJe escolhido.<br />
<br />
<br />
[[Arquivo:014.png|1000px]]<br />
<br />
<br />
'''Passo 3:''' É possível visitar mais de um sistema PJe ao mesmo tempo, utilizando a navegação por abas. Para abrir uma aba, clicar no botão +, e realizar a seleção do PJe desejado conforme orientado no Passo 2.<br />
<br />
[[Arquivo:013.png|1000px]]<br />
<br />
<br />
'''Passo 4:''' Para acessar o PJe, ir para [[Acesso_ao_PJe|'''Acesso ao PJe''']].<br />
<br />
<br />
== Soluções de problemas ==<br />
<br />
Se ao executar o aplicativo Navegador PJe apresentar as seguintes telas:<br />
<br />
[[Arquivo:Conferindo_versao.png]]<br />
<br />
<br />
[[Arquivo:Error_navegadorpje.png]]<br />
<br />
<br />
'''<font color=red>NOTA:</font>''' Caso esteja em uma rede corporativa e esteja apresentando o erro mencionado acima, em geral nesses casos é porque o proxy de sua rede interna deve estar barrando a comunicação do Navegador PJe com a Internet, que utiliza um serviço de atualização automática. Para esses casos, realizar a configuração abaixo. Entretanto, caso o problema persista, informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
<br />
Para solucionar o imprevisto pode ser realizado dois procedimentos:<br />
<br />
1. Alterar o endereço de atualização do aplicativo:<br />
<br />
'''Passo 1:''' O aplicativo Navegador PJe não deve estar em execução. Abrir o diretório: '''C:\NavegadorPJe\Atualizador\app'''. <br />
<br />
[[Arquivo:Diretorio_app.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Abrir o arquivo "url_versao.txt" e alterar o endereço "ftp://ftp.cnj.jus.br/pje/programs/versao.txt" para '''http://ftp.cnj.jus.br/pje/programs/versao.txt''' e salvar e fechar o arquivo.<br />
<br />
'''Passo 3:''' Abrir novamente o Navegador PJe.<br />
<br />
<br />
2. Executar outro arquivo:<br />
<br />
'''Passo 1:''' Abrir o diretório: C:\NavegadorPJe\FirefoxPortable e executar o arquivo "FirefoxPortable.exe".<br />
<br />
[[Arquivo:Executavel_firefox.png|1000px]]<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: (61) 2326-5353.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2017-10-17T20:52:15Z<p>Marcelo.campos: /* Aplicativo PJeOffice para instalação */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice-1.0.11.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.11_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.11_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.11_amd64.deb pje-office_amd64.deb]<br />
|-<br />
|'''Unix'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.11_unix_no_embedded.tar.gz pje-office_1.0.11_unix_no_embedded.tar.gz]<br />
|}<br />
<br />
== Aplicativos para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração modo simples (somente windows) ==<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
== Configuração modo avançado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
== Configurando solicitação de senha do certificado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2017-09-29T15:42:02Z<p>Marcelo.campos: </p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice-1.0.10.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.10_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.10_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.10_amd64.deb pje-office_amd64.deb]<br />
|-<br />
|'''Unix'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.10_unix_no_embedded.tar.gz pje-office_1.0.10_unix_no_embedded.tar.gz]<br />
|}<br />
<br />
== Aplicativos para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração modo simples (somente windows) ==<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
== Configuração modo avançado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
== Configurando solicitação de senha do certificado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Navegador_PJeNavegador PJe2017-04-25T17:41:20Z<p>Marcelo.campos: /* Aplicativo Navegador PJe para instalação */</p>
<hr />
<div>[[Arquivo:Icone navegador pje.png|right|x150px]]<br />
O PJe possui alguns pré-requisitos para utilização do sistema, o que acarreta a necessidade de instalação e configuração local de várias ferramentas no computador do usuário. Com intuito de melhorar a experiência com o sistema PJe e dirimir as eventuais ocorrências na configuração dos computadores pessoais foi elaborado o aplicativo Navegador PJe.<br />
<br />
O Navegador PJe é uma versão customizada do navegador Mozilla Firefox para uso exclusivo do sistema PJe em todos Tribunais onde foi instalado e no próprio Conselho Nacional de Justiça. Devido a questões de segurança, orienta-se a não alterar as configurações do aplicativo.<br />
<br />
O objetivo do aplicativo é disponibilizar uma ferramenta pré-configurada para acesso ao sistema PJe englobando o Mozilla Firefox, o Java e as cadeias de certificados válidas, além de realizar automaticamente as atualizações necessárias proporcionando assim maior segurança para os usuários do sistema.<br />
<br />
== Dedicatória ==<br />
Não teríamos esse navegador sem a ajuda do '''Tribunal de Justica do Rio Grande do Norte'''. Na verdade, todo esse trabalho foi desenvolvido por aquele tribunal.<br />
<br />
== Público Alvo ==<br />
<br />
Todos os usuários que utilizam o sistema PJe nos tribunais, tais como:<br />
* advogados,<br />
* partes,<br />
* servidores,<br />
* magistrados, e<br />
* procuradores.<br />
<br />
== Considerações ==<br />
<br />
* O instalador disponível nessa página contém as versões do Mozilla Firefox e do Java compatíveis com o PJe, além de já estar habilitada a opção de popups do PJe.<br />
* Outras versões do Mozilla ou de outros navegadores instalados no seu equipamento não serão afetados por esta instalação.<br />
* A partir da versão 2, atualizada em 28/06/2016, o Navegador PJe está configurado para Usar as configurações de proxy do sistema operacional.<br />
<br />
<br />
<font color=green>'''IMPORTANTE:'''</font> <br />
<br>Para o funcionamento integral do aplicativo é necessário que o [[Configura%C3%A7%C3%A3o_do_Ambiente#Certificado_Digital| Certificado Digital]] do usuário esteja instalado e funcional, de acordo com as orientações do fornecedor do seu dispositivo (token ou cartão).<br />
<br />
== Aplicativo Navegador PJe para instalação ==<br />
<br />
Para iniciar o download do programa, siga os passos abaixo:<br />
<br />
<br />
'''Passo 1:''' Realize o download do arquivo e aguarde o download terminar. <br />
<br />
{| class="wikitable" border="1"<br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows'''<br />
|[http://ftp.pje.jus.br/pje/programs/navegadorpje.zip navegadorpje.zip]<br />
|}<br />
<br />
'''<font color=red>NOTA:</font>''' O Navegador PJe não reconhece ou suporta outros sistemas operacionais, além do Windows.<br />
<br />
<br><br />
'''Passo 2''': Após a conclusão da transferência, clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Propriedades".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje.jpg|750px]]<br><br><br />
<br />
'''Passo 3''': Na janela que se abre, na aba Geral, no item Segurança, clicar em Desbloquear e logo após em "OK".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje_01.jpg|300px]]<br><br><br />
<br />
'''Passo 4''': Clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Extrair Tudo...". <br />
<br><br> [[Arquivo:Extracao_portalpje.jpg|750px]] <br><br><br />
<br />
'''Passo 5''': Logo após, selecionar um destino para o arquivo e clicar em EXTRAIR.<br />
<br><br> [[Arquivo:Extrair_pasta.jpg]] <br><br><br />
<br />
'''Passo 6''': Depois de finalizada a operação, executar o arquivo '''navegadorpje.exe'''. Na tela do Programa de Instalação clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_1.png|500px]] <br><br><br />
<br />
'''Passo 7''': Marcar a opção '''"Eu aceito os termos do Contrato"''' e clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_2.png|500px]] <br><br> <br />
<br />
'''Passo 8''': Na tela seguinte, caso prefira o ícone para acesso ao aplicativo marque a opção "Criar um ícone na Área de Trabalho", clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar portalpje 2.1.png|500px]] <br><br> <br />
<br />
OBSERVAÇÃO: Se esta opção não estiver marcada, após a instalação será necessário acessar o Navegador PJe através do Menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
<br><br />
<br><br />
'''Passo 9''': Clicar em INSTALAR e aguardar a conclusão da instalação. Caso deseje que o programa seja inicializado ao final da instalação marcar a opção "Executar Naveghador PJe" e clicar em CONCLUIR.<br />
<br><br> [[Arquivo:Instalar_portalpje_6.jpg]] <br><br><br />
<br />
== Utilizando o Navegador PJe ==<br />
<br />
'''Passo 1:''' É possivel executar o Navegador PJe através do atalho disponível na área de trabalho [[Arquivo:012.png|50px]] ou através do menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
[[Arquivo:011.png]]<br />
<br />
<br />
Ao iniciar o Navegador PJe, ele exibe como página inicial a tela para escolher o Estado e o Tribunal que se deseja acessar.<br />
<br />
<br />
[[Arquivo:008.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Após selecionar o Estado e o Tribunal escolhido, clicar no botão "Ir ao site", que abrirá a tela do PJe escolhido.<br />
<br />
<br />
[[Arquivo:014.png|1000px]]<br />
<br />
<br />
'''Passo 3:''' É possível visitar mais de um sistema PJe ao mesmo tempo, utilizando a navegação por abas. Para abrir uma aba, clicar no botão +, e realizar a seleção do PJe desejado conforme orientado no Passo 2.<br />
<br />
[[Arquivo:013.png|1000px]]<br />
<br />
<br />
'''Passo 4:''' Para acessar o PJe, ir para [[Acesso_ao_PJe|'''Acesso ao PJe''']].<br />
<br />
<br />
== Soluções de problemas ==<br />
<br />
Se ao executar o aplicativo Navegador PJe apresentar as seguintes telas:<br />
<br />
[[Arquivo:Conferindo_versao.png]]<br />
<br />
<br />
[[Arquivo:Error_navegadorpje.png]]<br />
<br />
<br />
'''<font color=red>NOTA:</font>''' Caso esteja em uma rede corporativa e esteja apresentando o erro mencionado acima, em geral nesses casos é porque o proxy de sua rede interna deve estar barrando a comunicação do Navegador PJe com a Internet, que utiliza um serviço de atualização automática. Para esses casos, realizar a configuração abaixo. Entretanto, caso o problema persista, informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
<br />
Para solucionar o imprevisto pode ser realizado dois procedimentos:<br />
<br />
1. Alterar o endereço de atualização do aplicativo:<br />
<br />
'''Passo 1:''' O aplicativo Navegador PJe não deve estar em execução. Abrir o diretório: '''C:\NavegadorPJe\Atualizador\app'''. <br />
<br />
[[Arquivo:Diretorio_app.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Abrir o arquivo "url_versao.txt" e alterar o endereço "ftp://ftp.cnj.jus.br/pje/programs/versao.txt" para '''http://ftp.cnj.jus.br/pje/programs/versao.txt''' e salvar e fechar o arquivo.<br />
<br />
'''Passo 3:''' Abrir novamente o Navegador PJe.<br />
<br />
<br />
2. Executar outro arquivo:<br />
<br />
'''Passo 1:''' Abrir o diretório: C:\NavegadorPJe\FirefoxPortable e executar o arquivo "FirefoxPortable.exe".<br />
<br />
[[Arquivo:Executavel_firefox.png|1000px]]<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: (61) 2326-5353.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2017-03-23T19:19:14Z<p>Marcelo.campos: /* Aplicativo PJeOffice para instalação */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice-1.0.9.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.9_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.9_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.9_amd64.deb pje-office_amd64.deb]<br />
|-<br />
|'''Unix'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.9_unix_no_embedded.tar.gz pje-office_1.0.9_unix_no_embedded.tar.gz]<br />
|}<br />
<br />
== Aplicativos para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração modo simples (somente windows) ==<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
== Configuração modo avançado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
== Configurando solicitação de senha do certificado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2017-03-23T19:19:00Z<p>Marcelo.campos: /* Aplicativo PJeOffice para instalação */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice-1.0.9.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.9_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.9_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.9_amd64.deb pje-office_amd64.deb]<br />
|-<br />
|'''Unix'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.9_unix_no_embedded.tar.gz pje-office_1.0.8_unix_no_embedded.tar.gz]<br />
|}<br />
<br />
== Aplicativos para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração modo simples (somente windows) ==<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
== Configuração modo avançado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
== Configurando solicitação de senha do certificado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Solu%C3%A7%C3%A3o_de_ProblemasSolução de Problemas2017-03-03T19:01:27Z<p>Marcelo.campos: </p>
<hr />
<div>Aqui será encontrado dicas básicas para diagnóstico e solução de problemas do PJe 2.0.<br />
<br />
Para os diagnósticos e solução de problemas relacionadas a versão do PJe da família 1.x acessar: [[Guia de atendimento para Suporte PJe]].<br />
<br />
== O assinador não carrega ==<br />
<br />
A mensagem '''''Aguarde alguns instantes até o assinador ser carregado!''''' aparece quando o modo de assinatura selecionado é o Java, ao clicar no botão Certificado digital na tela inicial do sistema, ou no momento de assinar um documento. <br />
<br />
[[Arquivo:Nao_carrega_applet.png]]<br />
<br />
<br />
:<font size=3 color=grey>'''Verifique a atualização do Java'''</font><br />
<br />
: A atualização do Java a partir da versão '''8.91''' impede o carregamento do "applet" de assinatura e "login" no Firefox, impedindo assim o acesso à tramitação processual desejada.<br />
<br />
::1. Reinicie o sistema e desinstale completamente a versão atualizada do Java 8.91 através do '''Painel de Controle > Programas e recursos''', localize o '''Java 8 Update 91''':<br />
<br />
:: [[Arquivo:Desinstalar_java1.png|1000px]] <br />
<br />
<br />
::2. Após a desinstalação do Java, baixar e instalar a versão do java 8.77 no link: [http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html#jre-8u77-oth-JPR download Java 8.77], é necessário '''Desabilitar a atualização automática do Java.'''<br />
<br />
::3. No painel de controle do Java, clicar na aba atualização, desmarque a opção '''Verificar se há atualizações automaticamente.'''<br />
<br><br />
::[[Arquivo:Desinstalar_java2.png]]<br />
<br><br />
<br />
== Mensagem de erro ao tentar acessar o PJe ==<br />
<br />
Ao tentar acessar o PJe, clicar no botão Certificado digital na tela inicial do sistema, apresenta a mensagem.<br />
Nesses casos é necessário verificar o texto da mensagem, pois para cada mensagem existe um procedimento a ser executado.<br />
<br />
<br />
:<font size=3 color=grey>'''Não foi possível realizar a autenticação: Não foi possível confirmar a identidade'''</font><br />
<br />
:Esta mensagem é apresentada quando o PJe não consegue realizar a validação dos dados do certificado digital do usuário com os dados no banco de dados do sistema e da Receita Federal.<br />
<br />
:[[Arquivo:Erro_nao_foi_possivel_confirmar_a_identidade.png|1000px]]<br />
<br />
<br />
:'''''Etapa 1:''''' Autoridade certificadora do certificado digital do usuário solicitante não está catalogada no sistema PJe. Para realizar a verificação, solicitamos que nos envie a chave pública do seu certificado. Para a extração da chave pública utilizando o Windows, acesse: [[Como_extrair_a_chave_pública_do_certificado|Como extrair a chave pública do certificado]]<br />
<br />
<br />
:'''''Etapa 2:''''' Divergências no cadastro do usuário.<br />
<br><br />
<br />
== Erro ao assinar o termo de compromisso - Cadastro de usuário ==<br />
<br />
Ao realizar o cadastro no PJe, após a assinatura do termo de compromisso no botão '''Assinar termo de compromisso''', apresenta a mensagem: <br />
'''''Houve um erro ao tentar verificar a assinatura digital do documento. Por favor, tente novamente ou dirija-se ao tribunal para realizar seu cadastro.'''''<br />
<br><br />
:<font size=3 color=grey>'''Verificar se o certificado é válido'''</font><br />
<br />
<br />
<br />
<br />
:<font size=3 color=grey>'''Configuração do servidor de aplicação Java do tribunal'''</font><br />
<br />
:A configuração do Java para arquivos '''ISO-8891''', desta forma se houver algum carácter estranho, algo como UTF-8 apresentará o erro.<br />
<br />
::1. Configurar o Java do servidor de aplicação: <br />
<br />
::<code>-Dfile.encoding=ISO-8859-1 -Duser.region=BR -Duser.language=pt –</code> Esta configuração fica no mesmo lugar onde se configura o <code>-Xms4g -Xmx4g</code> <br />
<br />
::2. É necessário recriar o modelo de assinatura do termo de compromisso.<br />
<br />
NOTA: Essa verificação é realizada pela a equipe do PJe do tribunal!<br />
<br />
<br />
<br />
== Rotina em MS-DOS para atualizar todas as cadeias ITI.GOV de todos os cacerts ==<br />
<br />
Esta rotina foi criada para facilitar a importação das cadeias de certificados.<br />
<br />
<pre><br />
<br />
@echo off<br />
SETLOCAL EnableDelayedExpansion<br />
SETLOCAL EnableExtensions<br />
IF %ERRORLEVEL% NEQ 0 (<br />
echo "Unable to enable extensions" <br />
) ELSE (<br />
echo "Extensions enabled"<br />
)<br />
<br />
<br />
SET /A "_count=1"<br />
SET iti_keystore="C:\pje\tmp\keystore_ICP_Brasil.jks"<br />
SET KEYTOOL_FILE="C:\Program Files\Java\jre1.8.0_121\bin\keytool.exe"<br />
<br />
FOR /R C:\ %%A IN (*CACERTS) DO (<br />
ECHO "!_count! : %%A"<br />
SET /A "_count+=1" <br />
%KEYTOOL_FILE% -importkeystore -noprompt -srckeystore "%iti_keystore%" -srcstorepass 12345678 -destkeystore "%%A" -deststorepass changeit<br />
)<br />
<br />
</pre></div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:20:30Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existem 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver jdbc do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:17:50Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP a partir do zero para o PJe 2.0, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existe 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos estão compactados e devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:17:12Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP para o PJe 2.0, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existe 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos estão compactados e devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
<br />
<br><br />
Apenas mais dois pontos para observar:<br />
* Configurar a memória da VM do java para o servidor wildfly/jboss pois a configuração padrão é insuficiente para o PJe<br />
* Alterar manualmente o datasource para o banco de dados desejado.<br />
<br><br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:13:17Z<p>Marcelo.campos: /* Instalação do mojarra 1.2 */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP para o PJe 2.0, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existe 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos estão compactados e devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:13:01Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP para o PJe 2.0, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existe 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos estão compactados e devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:10:36Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existe 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos estão compactados e devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss.<br />
Abaixo está o passo a passo do que foi executado.<br />
<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:10:06Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existe 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos estão compactados e devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss<br><br />
<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:09:44Z<p>Marcelo.campos: /* Recursos de VM (Virtual Machines) */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existe 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos estão compactados e devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss<br/><br />
<br/><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:09:34Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
<br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existe 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos estão compactados e devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss<br/><br />
<br/><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:08:11Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
<br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) '''a partir do diretório descompactado''' criado. O motivo para executar dentro do diretório criado se deve ao fato que dentro do arquivo compactado existe 2(duas) adições ao subsystem module do wildfly/jboss a saber: 1) o driver do postgres e 2) mojarra 1.2. Desta forma, esses dois arquivos estão compactados e devem estar no mesmo diretório do arquivo pje-wildfly.cli!<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:03:09Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
<br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) a partir do diretório descompactado criado.<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:02:46Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
<br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) a partir do diretório descompactado criado.<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss<br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:01:35Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
<br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP, copie o arquivo [ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip] para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) a partir do diretório descompactado criado.<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss<br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:00:52Z<p>Marcelo.campos: /* Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
<br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP, copie compactado abaixo para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) a partir do diretório descompactado criado.<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
[ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip config_pje_wildfly_jboss.zip]<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss<br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T06:00:22Z<p>Marcelo.campos: /* Recursos de VM (Virtual Machines) */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
<br />
<br />
====Configurando o Jboss EAP 7 ou Wildfly 9.0.2 usando jboss-cli====<br />
<br />
<br />
Com o intuito de facilitar a configuração do servidor wildfly ou Jboss EAP, copie compactado abaixo para um diretório, descompacte-o e execute o interface da linha de comando do jboss/wildfly (jboss-cli.sh) a partir do diretório descompactado criado.<br />
* Os servidores de aplicação não devem ter nenhuma alteração.<br />
* Sempre usar a configuração full do wildfly/jboss<br />
<br />
[ftp://ftp.cnj.jus.br/pje/programs/config_pje_wildfly_jboss.zip]<br />
<br />
Execute o comando:<br />
<pre><br />
<JBOSS_HOME>/bin/jboss-cli.bat -c --file=pje-wildfly.cli<br />
</pre><br />
<br />
Se o comando executou com sucesso, deverá aparecer a seguinte mensagem do jboss-cli:<br />
<pre><br />
The batch executed successfully<br />
process-state: reload-required<br />
</pre><br />
<br />
Reinicialize o wildfly/jboss<br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T03:56:51Z<p>Marcelo.campos: /* Criação dos Datasources */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statements-cache-size>0</prepared-statements-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Instala%C3%A7%C3%A3oInstalação2017-01-22T03:08:34Z<p>Marcelo.campos: /* Alterações no arquivo standalone.xml */</p>
<hr />
<div><!--<br />
{| {{table border=1}}<br />
| align="center" style="background:#f0f0f0;"|'''Versão'''<br />
| align="center" style="background:#f0f0f0;"|'''Data'''<br />
| align="center" style="background:#f0f0f0;"|'''Autor'''<br />
| align="center" style="background:#f0f0f0;"|'''Descrição'''<br />
|-<br />
| 1.0||07/08/12||Paulo Cristovão Araújo Silva Filho<br>Antonio Augusto Silva Martins||Versão inicial<br />
|-<br />
| 1.1||26/09/12||Antonio Augusto Silva Martins||- Script SQL de inclusão do CPF do usuário Administrador<br>- Configuração do LOCALE do servidor de aplicações para PT_BR<br />
|}<br />
--><br />
Os direcionamentos a seguir se destinam a instruir a equipe de infraestrutura de tecnologia da informação dos tribunais que utilizam o sistema PJe sobre os procedimentos necessários para a realização de uma instalação inicial do sistema, assim como sobre os procedimentos necessários para uma evolução de versão. As instruções têm por base a versão 1.4.x do sistema PJe – Processo Judicial Eletrônico.<br />
<br />
== Público-alvo ==<br />
<br />
As instruções a seguir se destinam à equipe de infraestrutura de tecnologia da informação do tribunal, especificamente àqueles responsáveis por:<br />
* instalar e manter sistemas gerenciadores de bancos de dados;<br />
* instalar e manter servidores de aplicação Java;<br />
* instalar e manter servidores de distribuição de carga de demandas Web.<br />
<!--<br />
O presente documento está segmentado em cinco partes:<br />
• acesso ao pacote de instalação do PJe<br />
• instalação do sistema gerenciador de banco de dados<br />
• carga inicial de dados do PJe no sistema gerenciador de banco de dados<br />
• instalação e configuração do servidor de aplicação<br />
• instalação do PJe no servidor de aplicação<br />
• procedimentos para evolução de versão --><br />
<br />
== Conhecimento prévio ==<br />
Embora não seja essencial, é de grande utilidade que o responsável pela execução dos passos descritos a seguir:<br />
* esteja ambientado com os sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o sistema PJe;<br />
* conheça a ferramenta de controle de pacotes de softwares instalados dos sistemas operacionais escolhidos para hospedar o sistema gerenciador de banco de dados e o servidor de aplicação em que será instalado o PJe;<br />
* conheça as configurações mais elementares do sistema gerenciador de banco de dados PostgreSQL 9.1;<br />
* conheça as configurações mais elementares de máquina virtual Java 1.6;<br />
* conheça as configurações mais elementares do servidor de aplicação JBoss AS 5.1;<br />
<br />
== Softwares requeridos == <br />
A depender do sistema operacional hospedeiro das aplicações, é necessário que o responsável pela instalação do sistema tenha disponível os seguintes softwares:<br />
* [http://www.postgresql.org PostgreSQL 9.2] ou superior;<br />
* [http://java.sun.com Oracle Java Development Kit 1.6.0_33] (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso);<br />
* [http://jdbc.postgresql.org Driver JDBC PostgreSQL 9.2] ou superior;<br />
* [http://www.jboss.org JBoss Application Server 5.1.0GA-JDK6] ou EAP 5.2.0;<br />
* PJe (mais informações para obtê-lo na [[Instalação#Pacote de instalação do PJe|próxima seção]])<br />
Alguns desses softwares podem ser obtidos diretamente no servidor FTP do Conselho Nacional de Justiça, além de algumas modificações destinadas a melhorar o desempenho da aplicação.<br />
<br />
== Pacote de instalação do PJe ==<br />
O sistema PJe – Processo Judicial Eletrônico é disponibilizado para instalação no FTP do CNJ. Em sua versão 1.4.x, o pacote de instalação é composto pelos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para acesso ao FTP são necessários os seguintes procedimentos:<br><br />
1. Conectar ao FTP do CNJ (via linha de comando ou ferramenta): [ftp://ftp.cnj.jus.br FTP];<br><br />
2. Informar o usuário e a senha fornecidos aos tribunais para acesso ao FTP do CNJ;<br><br />
3. Certificar-se de que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente;<br><br />
4. Navegar até o diretório “pje_descanso”;<br><br />
5. Baixar o arquivo da versão mais recente.<br />
<br />
== Sistema gerenciador de banco de dados ==<br />
O sistema PJe – Processo Judicial Eletrônico, em sua versão 1.4.x, prevê sua utilização com o sistema gerenciador de banco de dados PostgreSQL, em sua versão 9.2 ou superior. A versão 9.2 do SGBD PostgreSQL apresenta significativas vantagens sobre as versões anteriores desse banco de dados, em especial aquelas pertinentes à replicação imediata de bases e à possibilidade de realização de cópias de segurança com a aplicação em uso. Não obstante essa escolha, há retrocompatibilidade de banco de dados com a versão 8.4, caso a estrutura do banco seja repetida nesta versão.<br />
Atualmente o CNJ utiliza com sucesso a versão 9.3.<br />
Entretanto, dependendo do número de acessos simultâneos é necessário instalar adicionalmente ao SGBD, um gerenciador de conexões com o banco de dados, o [[Uso_do_PgBouncer_com_o_PJe|PGBouncer]].<br />
<br />
=== Instalação === <br />
A instalação do SGBD PostgreSQL é extremamente mutável, a depender do sistema operacional. Uma vez que não é nosso escopo abranger todas as possibilidades de instalação, descreveremos a configuração de um banco de dados já instalado no sistema operacional. Uma vez instalado o PostgreSQL no sistema operacional hospedeiro, é necessário realizar algumas configurações mínimas para seu adequado funcionamento com o PJe.<br />
<br />
=== Usuário básico ===<br />
<br />
Ao ser instalado, o PostgreSQL define um usuário básico responsável pela administração do banco de dados. Ordinariamente, esse usuário tem o login “postgres” e sua senha é definida durante o processo de instalação do SGBD. <br />
Se essa senha não foi definida durante a instalação, é necessário que o administrador do sistema operacional hospedeiro o faça em seguida. Para isso, considerando um SO do padrão POSIX, devem ser executados alguns comandos na linha de comando do SO hospedeiro. São os seguintes:<br />
<font color="#00FF00"><br />
<br />
<br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| usuario@sohost:~$ sudo su – postgres -c 'psql'<br>[sudo] password for usuario:<br>psql (9.x)<br>Type “help”for help.<br> ||(1)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \password<br>Enter new password:<br>Enter it again:<br>||(2)<br />
|- <br />
| colspan="2" | <br />
|- <br />
| colspan="2" | <br />
|-<br />
| postgres=# \quit||(3)<br />
|-<br />
|}<br />
<br />
</font><br />
O comando (1) permite que o administrador assuma a identidade do usuário “postgresql”, ao mesmo tempo em que executa, como este usuário, o cliente <br />
de banco de dados psql na base padrão. Dependendo da configuração do sistema operacional, será exigida do usuário administrador a entrada de sua senha de usuário para a execução desse comando.<br><br />
O comando (2) indica que o usuário “postgres” pretende definir ou modificar sua senha. A senha deve ser definida por meio de sua inserção seguida da tecla enter e a repetição do procedimento. Após, basta executar o comando (3) para sair do sistema.<br />
<br />
=== Liberação para acesso em rede ===<br />
Por padrão, a instalação do PostgreSQL não permite que clientes de outros computadores da mesma rede possam acessar o banco de dados. Em razão disso, é necessário modificar dois arquivos de configuração do PostgreSQL para permitir tais acessos.<br><br />
O primeiro arquivo a ser modificado é o arquivo '''postgresql.conf''', localizado na pasta main da tablespace do sistema (/etc/postgresql/9.x, /var/local/postgresql/9.x, etc.). Nesse arquivo, é necessário editar a linha com o parâmetro listen_addresses, que originalmente contém “localhost”. Deve ser substituído o conteúdo “localhost” pelos números IPs, separados por vírgulas, dos equipamentos autorizados a acessar o banco de dados. Embora não seja recomendável, caso a estrutura e a política de segurança do tribunal permita, a lista de IPs, pode ser substituída por asterisco (*), caso em que o servidor de banco de dados poderá receber conexões de qualquer origem.<br><br />
No mesmo arquivo, é recomendável ativar o parâmetro password_encryption, atribuindo a ele o valor “on”. <br><br />
Finalmente, é necessário editar o arquivo '''pg_hba.conf''', localizado na mesma pasta. Esse arquivo tem uma longa documentação explicativa. Em síntese, o objetivo desse arquivo é fazer o ajuste fino a respeito de como e o que pode ser acessado remotamente. Para uma configuração simples é necessário acrescentar, após a última linha, linhas contendo a configuração de acesso às bases do PJe. No caso de criação dos bancos de dados “pje_descanso” e “pje_descanso_bin” com o controle pelo usuário padrão “postgres” e acesso à uma subrede 10.0.0.*, as linhas acrescentadas poderiam ser:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
| host||||pje_descanso||||postgres ||10.0.0.0/24||||md5<br />
|-<br />
| host||||pje_descanso_bin|| ||postgres||10.0.0.0/24||||md5<br />
|}<br />
<br />
</font><br />
<br />
Essas duas linhas significam que o usuário “postgres” poderá acessar os bancos de dados “pje_descanso” e “pje_descanso_bin” se seu acesso for realizado com o uso de senha encriptada a partir de máquinas cujo IP estejam entre 10.0.0.1 e 10.0.0.255.<br><br />
Para mais informações a respeito dessas configurações de acesso, consulte http://www.postgresql.org/docs/9.1/interactive/client-authentication.html.<br />
<br />
===Configuração específica===<br />
O sistema PJe utiliza dois bancos de dados para suas operações usuais. Isso por vezes demanda a preparação de mais de uma transação em um mesmo momento. Para suportar esse tipo de operação, é necessário modificar uma configuração específica do SGBD. Essa configuração é feita no mesmo arquivo postgresql.conf anteriormente mencionado. Após abri-lo, deve ser modificado o parâmetro [[Erros_de_configura%C3%A7%C3%A3o#Exce.C3.A7.C3.A3o_HeuristicMixedException|max_prepared_transactions]] para que esse tipo de operação seja ativado, configurando-se o valor para, no mínimo, 10, conforme a capacidade do equipamento servidor disponibilizado para o SGDB. <br>Favor verificar a documentação do SGBD a respeito.<br />
<br />
=== Carga inicial dos dados do PJe no SGBD ===<br />
O sistema PJe – Processo Judicial Eletrônico foi concebido para funcionamento em cenários muito diversos de instalações, especialmente considerando a multiplicidade de segmentos do Judiciário e suas especificidades. Em razão disso, ele encerra uma quantidade significativa de configurações que, feitas manualmente, tornaria difícil, senão impossível chegar a um cenário utilizável em um prazo razoável. <br />
Em razão disso, são disponibilizadas, com a versão binária do sistema, cópias de bases de dados com uma configuração mínima a partir da qual os tribunais podem começar a configurar o sistema conforme suas características próprias. As cópias são disponibilizadas, ordinariamente, em formato SQL, que permitem o uso entre versões diferentes do PostgreSQL. Eventualmente, podem ser disponibilizadas em formato binário.<br />
<br />
=== Criação dos bancos de dados ===<br />
Os bancos de dados do PJe devem ser criados utilizando algumas características essenciais, quais sejam:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
A criação do banco pode ser feita diretamente do sistema operacional utilizando o comando createdb. Eis um exemplo:<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ createdb -E LATIN1 –-lc-collate=C –lc-ctype=C -O postgres -T template0 -h 123.45.67.8 -W -U postgres pje_descanso<br />
|}<br />
</font><br />
<br />
O comando acima criou um banco de dados chamado “pje_descanso” pertencente ao usuário “postgre” no banco de dados localizado na máquina “123.45.67.8” com as características essenciais do PJe. O mesmo deveria ser feito para o banco binário, que deve, por óbvio, ter outro nome, por exemplo: “pje_descanso_bin”.<br />
<br />
=== Carga de banco de dados em script SQL ===<br />
A carga do banco de dados a partir de scripts SQL deve também ser feita por meio da linha de comando, agora utilizando o cliente de terminal do PostgreSQL, psql:<br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br><br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br><br />
DATABASE - banco de dados criado para restauração do dump<br><br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração <br />
<br />
<font color="#00FF00"><br />
{|bgcolor="#000000" {{table width="70%"}}<br />
|- <br />
|usuario@sohost:~$ psql -U postgres -h 123.45.67.8 -d pje_descanso –W < ./ pje_descanso_1.4.3_limpa.sql<br />
|}<br />
</font><br />
<br />
O exemplo acima carrega o banco “pje_descanso” com os dados do backup SQL contido no arquivo “pje_descanso_1.4.3_limpa.sql”. O mesmo deve ser feito com o backup SQL do banco binário. <br><br />
Após a carga de dados, é necessário executar o comando SQL de INSERT listado abaixo na base “pje_descanso” para definição do CPF e nome do usuário administrador do sistema. Isso é necessário para que seja possível ao admin cadastrar os usuários da aplicação a partir do serviço de consulta de pessoas físicas e jurídicas da Receita Federal. Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e nome do detentor do documento.<br><br><br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pess_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'FALSE', <br />
'TRUE',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'TRUE',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Replicação e Cluster ===<br />
<br />
* Sobre a implementação de replicação no PostgreSQL do banco do PJe, acesse [[Replicação_no_PostgreSQL|Replicação no PostgreSQL]].<br />
<br />
* Para a implementação de Clusters no PostgreSQL, acesse [[Criar_um_Cluster_PostgreSQL|Criar um Cluster no PostgreSQL]].<br />
<br />
== Instalação e configuração do servidor de aplicação ==<br />
<br />
<p>O sistema PJe – Processo Judicial Eletrônico é uma aplicação Web escrita na linguagem de programação Java. Assim sendo, ela é executada em um servidor de aplicação específico, o JBoss Application Server 5.1.0. Para garantir o correto funcionamento do sistema, certifique-se que os passos abaixo foram executados com sucesso.</p><br />
<br/><br />
<br />
<ol><br />
<li>Uma das premissas do sistema é que esteja instalada no sistema operacional uma máquina virtual Java JDK com versão 1.6.0_45. Recomendamos o uso do java JDK 1.7.0_51, porém para este JDK funcionar com o JBoss Server 5.1.0, deve ser aplicado um patch que corrige um classloader no bootstrap.xml ou usar a versão EAP 5.2.0. Atualmente o CNJ utiliza o JBOSS EAP 5.2.0 junto com o Java SDK 1.7.0_51. Para verificar se o sistema operacional possui uma versão JDK devidamente instalada, execute o comando a seguir.<br />
<pre><br />
usuario@sohost:~$ java -version<br />
</pre><br />
</li><br />
<li>Baixe e instale o JBoss Application Server 5.1.0 para JDK 1.6, para isso siga os passos seguintes:<br />
<ol><br />
<li>Baixe o JBoss disponível na URL http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip?r=&ts=1386707755&use_mirror=ufpr. Certifique-se que o pacote baixado é o jboss-5.1.0.GA-jdk6.zip e não o pacote jboss-5.1.0.GA.zip, pois a versão para JDK 1.6 já vem com as bibliotecas do Jboss que implementam o padrão jaxws instaladas. Essas bibliotecas são condição para o perfeito funcionamento das comunicações via web service.</li><br />
<li>Descompacte o arquivo jboss-5.1.0.GA-jdk6.zip para o local desejado na estrutura de arquivos (Ex: /opt/jboss-5.1.0.GA). Deve-se atentar que alguns sistemas operacionais permitem a instalação desses servidores por meio de pacotes de instalação que já configuram a inicialização e parada do servidor.</li><br />
</ol><br />
</li><br />
<li>Reconfigure os limites de memória disponibilizados para o servidor de aplicação. Isso pode ser feito no script de inicialização do servidor, pela linha de comando ou diretamente no arquivo run.conf, localizado na pasta descompactada JBOSS_DIR/bin. Em quaisquer dos cenários, o que se faz é modificar a variável de ambiente JAVA_OPTS para disponibilizar mais memória para a aplicação Java. Essencialmente, devem ser aumentadas a memória total de pilha – parâmetro -Xmx – e o tamanho máximo da memória permanente – parâmetro -XX:MaxPermSize. O tamanho máximo disponível da memória total de pilha é severamente limitado pelo sistema operacional quando ele é de 32 bits, motivo por que é recomendável utilizar sistemas operacionais de 64 bits, caso em que a barreira de 3GB de memória disponível é facilmente superada. O ideal é dispor do máximo possível da memória disponível no servidor de aplicação para a máquina virtual Java, assegurando um mínimo de 1024MB. Para a memória permanente (MaxPermSize), recomenda-se um mínimo de 256MB.<br />
Desse modo, os parâmetros acima devem ser modificados no arquivo JBOSS_DIR/bin/run.conf ou nas variáveis de ambiente ou script para o seguinte:<br />
<pre><br />
JAVA_OPTS=”$JAVA_OPTS –Xms1024m -Xmx1024m -XX:MaxPermSize=256m”<br />
</pre><br />
</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher, conforme recomendado em registro de falha específico [[http://www.seamframework.org/Documentation/WhatHappensWhenYouDeploySeamAppInJBoss5#H-TheQuickFixes 1]]. Note-se que a afirmação retro parte da premissa de que a configuração do servidor escolhida para execução do PJe é a default, devendo esse nome ser substituído pelo do servidor efetivamente escolhido.</li><br />
<li>Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”. Isso é necessário para permitir consultas a webservices que exigem autenticação via SOAP Header, caso do serviço de consultas a advogados da OAB.</li><br />
<li>Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/server/default/lib.</li><br />
<li>Para servidores de aplicação configurados em rede interna e disponibilizados na Internet através de proxy, o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml deve ser alterado conforme a seguir:<br/><br />
* comentar a linha "property name="webServiceHost..."<br />
* alterar o valor da propriedade "modifySOAPAddress" para "false" <br />
Abaixo, trecho do arquivo conforme alteração:<br/><br />
<pre><br />
<nowiki><!--</nowiki>property name="webServiceHost">${jboss.bin.address}</property<nowiki>--></nowiki><br />
<property name="modifySOAPAddress">false</property><br />
</pre><br />
Essa alteração corrige a informação exibida na lista de serviços do PJe disponibilizada através de <urlpje>/intercomunicacao?wsdl </li><br />
<li>Para o correto funcionamento dos webservices é necessário atualizar as bibliotecas jaxb do JBoss para a versão 2.2.7. Para isso siga os passos abaixo:<br />
<ol><br />
<li>Baixe o JAXWS 2.2.7 da URL https://jax-ws.java.net/2.2.7/JAXWS2.2.7-20120813.zip;</li><br />
<li>Copie e substitua os arquivos JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-impl.jar e JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-xjc.jar para a pasta JBOSS_DIR/lib;</li><br />
<li>Copie e substitua o aquivo JAXWS2.2.7-20120813.zip/jaxws-ri/lib/jaxb-api.jar a para a pasta JBOSS_DIR/lib/endorsed.</li><br />
Caso a biblioteca em questão não esteja devidamente instalada, na fase de deploy do war acontecerá o seguinte erro:<br />
Caused by: java.lang.IllegalStateException: Cannot build JAXB context<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:994)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:163)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52)<br />
at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:62)<br />
at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.start(UnifiedMetaDataDeploymentAspect.java:64)<br />
at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:129)<br />
at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:76)<br />
at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)<br />
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)<br />
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)<br />
... 31 more<br />
<br />
Obs.: Na instalação padrão do red-hat enterprise linux 6.5, os arquivos .jar dos diretórios JBOSS_DIR/lib e JBOSS_DIR/lib/endorsed são links simbólicos. Assim, convém alterar os arquivos apontados por estes links. Desta forma, bastar copiar os arquivos acima para o diretório /usr/share/java-signed/glassfish-jaxb.<br />
</ol><br />
</li><br />
<li>Instale a biblioteca Apache Portable Runtime (libtcnative), que faz com que algumas chamadas Java sejam delegadas para bibliotecas nativas do sistema operacional, melhorando o desempenho do sistema em produção. Para isso siga os passoa abaixo:<br />
<ol><br />
<li>Baixe o JBOSS NATIVE 2.0.10 disponível na URL http://downloads.jboss.org/jbossnative//2.0.10.GA/jboss-native-2.0.10-linux2-x64-ssl.tar.gz;</li><br />
<li>Copie o arquivo jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/openssl para a pasta JBOSS_DIR/bin/;</li><br />
<li>Copie os arquivos jboss-native-2.0.10-linux2-x64-ssl.tar.gz/bin/native/* para a pasta JBOSS_DIR/bin/META-INF/lib/linux2/x64/.</li><br />
</ol><br />
</li><br />
Observação: Para que o APR seja inicializado com sucesso pelo Eclipse é necessário colocar a linha abaixo no início dos parâmetros da VM do launch do servidor.<br />
-Djava.net.preferIPv4Stack=true -Djava.library.path=JBOSS_DIR/bin/META-INF/lib/linux2/x64 <br />
<li>Para habilitar o SSL do JBoss altere o arquivo JBOSS_DIR/server/default/deploy/jbossweb.sar/server.xml, descomentando e alterando o connector SSL para ficar conforme exemplo abaixo.<br/><br />
A configuração a seguir refere-se ao cenário onde o JBoss faz o papel de Container Web e Servidor de Aplicações, muitos tribunais usam o Apache como Container Web, neste caso a habilitação do SSL é feita no próprio Apache.<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="{CAMINHO DO KEYSTORE}"<br />
keystorePass="{SENHA DO KEYSTORE}" <br />
truststoreFile="{CAMINHO DO TRUSTSTORE}" <br />
truststorePass="{SENHA DO TRUSTSTORE}"<br />
sslProtocol = "TLS" /><br />
</pre><br />
Exemplo:<br />
<pre><br />
<Connector <br />
protocol="org.apache.coyote.http11.Http11Protocol" <br />
SSLEnabled="true" <br />
port="8443" <br />
address="${jboss.bind.address}"<br />
scheme="https" <br />
secure="true" <br />
clientAuth="want" <br />
keystoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.keystore"<br />
keystorePass="123456" <br />
truststoreFile="/desenvolvimento/documento/certificado-digital/pje-documentacao/cnj-jboss.truststore" <br />
truststorePass="123456"<br />
sslProtocol = "TLS" /><br />
</pre><br />
<br />
Segue a rotina para geração de keystore e truststore de exemplo.<br />
<pre><br />
usuario@sohost:~$ keytool -genkey -alias jbosskey -keyalg RSA -keystore cnj-jboss.keystore -storepass 123456 -keypass 123456 -dname "CN=jboss, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, ST=DF, C=BR"<br />
usuario@sohost:~$ keytool -export -alias jbosskey -keystore cnj-jboss.keystore -storepass 123456 -file cnj-jboss.cer<br />
usuario@sohost:~$ keytool -genkey -alias clientekey -keyalg RSA -keystore cnj-cliente.keystore -storepass 123456 -keypass 123456 -dname "CN=cliente, OU=PJe, O=Conselho Nacional de Justica, L=Brasilia, S=DF, C=BR" <br />
usuario@sohost:~$ keytool -export -alias clientekey -keystore cnj-cliente.keystore -storepass 123456 -file cnj-cliente.cer<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-cliente.truststore -storepass 123456 -file cnj-jboss.cer -alias jbosskey<br />
usuario@sohost:~$ keytool -import -v -keystore cnj-jboss.truststore -storepass 123456 -file cnj-cliente.cer -alias clientekey<br />
</pre><br />
</li><br />
<li>O framework de chamada de WebServices do JBoss 5.1.0 GA deve ser atualizado para a versão jbossws-native-3.4.0. Para isso siga os passoa abaixo:<br />
<ul><br />
<li><b>ATENÇÃO: Antes de executar os passos abaixo faça um backup do Servidor de Aplicações;</b></li><br />
<li>Baixe o arquivo jbossws-native-3.4.0.GA do endereço eletrônico http://download.jboss.org/jbossws/jbossws-native-3.4.0.GA.zip. Esta é a versão do JBossWS mais recente suportada pelo JBoss 5.1.0, conforme informado no link https://developer.jboss.org/wiki/JBossWS-SupportedTargetContainers;</li><br />
<li>Descompacte o arquivo jbossws-native-3.4.0.GA.zip em uma pasta qualquer;</li><br />
<li>Copie o arquivo ant.properties.exemples para ant.properties;</li><br />
<li><br />
Altere as propriedades 'jboss510.home' e 'jbossws.integration.target' do arquivo ant.properties, conforme exemplo abaixo:<br />
<pre><br />
jboss501.home=/<br />
jboss510.home=/desenvolvimento/ferramenta/jboss-5.1.0.GA<br />
jboss600.home=/<br />
jboss601.home=/<br />
<br />
jbossws.integration.target=jboss510<br />
</pre><br />
</li><br />
<li><br />
Execute o ant conforme exemplo abaixo:<br />
<pre><br />
ant deploy-jboss510<br />
</pre><br />
</li><br />
</ul><br />
</li><br />
</ol><br />
Observações gerais:<br />
<ol><br />
<li>Deve-se lembrar que, pretendendo-se disponibilizar o sistema para uso em produção, o servidor de aplicação deve ser configurado para responder pela porta 80 com reencaminhamento para a porta segura 443, com disponibilização da aplicação apenas por meio do protocolo HTTPS.</li><br />
<br />
<li>Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n.</li><br />
<pre><br />
LANG=”pt_BR.UTF-8” <br />
</pre><br />
</ol><br />
<br />
<br />
<br />
== Instalação e configuração do servidor de aplicação WILDFLY 9.0.2 para o Pje 2.0 ==<br />
<br />
Instale a versão '''''9.0.2''''' do wildfly. Normalmente, o diretório padrão para instalação deste container é ''/opt/wildfly'' no linux.<br />
É altamente recomendável que se crie os serviços para iniciar e parar o wildfly, quer seja com ''init.d'' ou ''systemctl''. Para este tutorial será seguido o ''systemctl'' por ser a versão mais recente. As distribuições de linux deixarão de apoiar o init.d com o tempo.<br />
<br />
A maioria das configurações do wildfly estão no arquivo ''standalone.xml'' que fica no diretório ''<WILDFLY_HOME>/standalone/configuration/standalone.xml''<br />
Devemos usar o perfil completo do wildfly que está no arquivo ''standalone-full.xml''. Em nossa instalação apenas copiamos o arquivo ''standalone-full.xml'' para ''standalone.xml''<br />
<br />
Por padrão usaremos <WILDFLY_HOME> apontando para /opt/wildfly<br />
<br />
<br />
====Recursos de VM (Virtual Machines)====<br />
<br />
* Linux (qualquer versão)<br><br />
* Wildfly 9.0.2<br><br />
* Memória: 8GB (mínimo)<br><br />
* Processadores (vCores): 4<br><br />
* Java 1.8 (qualquer pacote – openjdk ou oracle oficial)<br><br />
* Partição /tmp com 30 GB<br><br />
* Partição /var separada da partição raiz – ‘/’ - para o log – com a finalidade de quando e se houver 100 de uso da partição não cause indisponibilidade do sevidor.<br><br />
<br><br />
<br />
====Instalação driver jdbc do Postgresql====<br />
Até o presente momento, não encontramos uma forma automatizada de fazer um deploy de drivers jdbc no wildfly, assim, esse procedimento será manual. Não existem mais diretórios ''lib'' no wildfly. Todos os arquivos jar são, de certa forma, implantados no ''module subsystem''. O padrão usado no PJe para o nome do módulo do jdbc do postgres será ''org.postgresql''. Também não há contra-indicação quanto a uma versão específica do jdbc do postgres. Nós usamos sempre a mais atual possível. Já testamos versões mais recentes do jdbc conectando em versões mais antigas do servidor postgres com sucesso.<br />
<br />
Criar o diretório para instalação do jar do jdbc:<br />
<br />
<pre><br />
mkdir -p <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main<br />
</pre><br />
<br />
<br />
No diretório criado - <WILDFLY_HOME>/modules/system/layers/base/org/postgresql/main - copiar o driver jdbc e criar um arquivo module.xml, conforme exemplo abaixo:<br />
<br />
<pre><br />
<?xml version="1.0" encoding="UTF-8"?><br />
<br />
<module xmlns="urn:jboss:module:1.0" name="org.postgresql"><br />
<resources><br />
<resource-root path="postgresql-9.4.1207.jar"/><br />
<!-- Insert resources here --><br />
</resources><br />
<dependencies><br />
<module name="javax.api"/><br />
<module name="javax.transaction.api"/><br />
</dependencies><br />
</module><br />
</pre><br />
<br />
Portanto, deveremos ter 2(dois) arquivos neste diretório. *Algumas considerações importantes*: 1) O nome do arquivo jdbc deve ser igual ao indicado no parâmetro ''path'' do ''resource-root'', 2) Evitar espaços em branco no inicio do arquivo module.xml, 3) O nome do módulo ''name="org.postgresql'' deve seguir a estrutura do diretório <WILDFLY_HOME>/modules/system/layers/base/'''org/postgresql/'''main e será referenciado no arquivo ''standalone.xml''<br />
<br />
<pre><br />
-rw-r--r--. 1 wildfly 1392 Jun 16 18:12 module.xml<br />
-rw-r--r--. 1 wildfly 607093 Jun 16 18:12 postgresql-9.4.1207.jar<br />
</pre><br />
<br />
<br />
chown -R wildfly:wildfly <WILDFLY_HOME>/modules/system/layers/base/org/postgresql<br />
<br />
====Instalação do mojarra 1.2====<br />
<br />
O PJE ainda necessita de uma versão específica do JSF - a versão 1.2 - que não está mais disponível na instalação padrão do Wildfly 9. Desta forma temos que instalar manualmente. Para fazer isso basta realizar o deploy deste pacote [http://ftp.cnj.jus.br/pje/programs/install-mojarra-1.2_15.cli mojarra-1.2] utilizando o console do wildfly.<br />
Uma vez que o wildfly esteja ativo, no diretório bin da instalação do wildfly encontra-se o executável jboss-cli.sh.<br />
<br />
<pre><br />
::/opt/wildfly/bin/jboss-cli.sh<br />
</pre><br />
<br />
Será apresentado a seguinte informação:<br />
<br />
<pre><br />
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.<br />
[disconnected /] <br />
</pre><br />
Digite o comando 'connect'<br />
<pre><br />
[disconnected /] connect<br />
</pre><br />
Se tudo ocorrer certo, o prompt será alterado para:<br />
<pre><br />
[standalone@localhost:9990 /]<br />
</pre><br />
digite, deploy <PATH_TO_CLI>/install-mojarra-1.2_15.cli<br />
<pre><br />
[standalone@localhost:9990 /] deploy install-mojarra-1.2_15.cli<br />
</pre><br />
Nenhuma informação será mostrada neste momento. Saia da console do wildfly com o comando exit e restarte o servidor.<br />
<pre><br />
[standalone@localhost:9990 /] exit<br />
</pre><br />
Veja o link ([http://developer-should-know.com/post/112230363742/how-to-install-wildfly-as-a-service-on-linux aqui]) para informações de como criar um serviço para o wildfly.<br />
No debian, trocar o comando: chkconfig --add <servico>, por update-rc.d <servico> defaults<br />
<pre><br />
# systemctl restart wildfly-standalone #Obs.: o nome do serviço pode ser diferente.<br />
</pre><br />
Vamos conferir novamente na console se o deploy foi bem sucedido. O nome ''mojarra-1.2_15'' deve aparecer na lista de implementações ativas.<br />
<br />
<pre><br />
[standalone@localhost:9990 /] /subsystem=jsf/:list-active-jsf-impls<br />
{<br />
"outcome" => "success",<br />
"result" => [<br />
"mojarra-1.2_15",<br />
"main"<br />
]<br />
}<br />
</pre><br />
<br />
<br />
====Alterações no arquivo standalone.xml====<br />
<br />
Habilitar o wildfly para aceitar conexões externas (equivalente ao -b 0.0.0.0 do jboss 5.1). Incluir entre o final da seção </extensions> e o início da seção <management> - linhas 33 a 36 aproximadamente.<br />
<br />
<br />
<pre><br />
<system-properties><br />
<property name="jboss.bind.address" value="0.0.0.0"/><br />
<property name="jboss.bind.address.management" value="0.0.0.0"/><br />
</system-properties><br />
</pre><br />
<br />
<br />
Alterar o subsystem weld para incluir a cláusula ''require-bean-descriptor''.<br />
<br />
Antes:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0"/><br />
</pre><br />
<br />
Depois:<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/><br />
</pre><br />
<br />
Criação das entradas dos drivers jdbc para o jboss<br />
Dentro do arquivo ''standalone.xml'', existe uma seção chamada ''<drivers>'', que fica dentro da seção ''<datasources>'', que pertence ao subsystem ''<subsystem xmlns="urn:jboss:domain:datasources:3.0">'' e deve ser configurada em dois passos. O primeiro é a configuração do driver e o segundo, o datasource<br />
<br />
<pre><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</pre><br />
<br />
Importante notar que o nome do módulo ''module="org.postgresql"'' deve ser rigorosamente o nome criado no arquivo module.xml quando implantado o driver jdbc do postgres. Segue um exemplo como ficaria a seção drivers completa:<br />
<br />
<pre><br />
<drivers><br />
<driver name="h2" module="com.h2database.h2"><br />
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres_XA" module="org.postgresql"><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
</driver><br />
<driver name="postgres" module="org.postgresql"><br />
<datasource-class>org.postgresql.Driver</datasource-class><br />
</driver><br />
</drivers><br />
</pre><br />
<br />
<br />
Para testar se tudo está correto, ao iniciar o wildfly, no arquivo de log, deverão aparecer as entradas para os dois drivers criados no arquivo ''standalone.xml'':<br />
<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 36) WFLYJCA0005: Deploying non-JDBC-compliant driver class org.postgresql.Driver (version 9.4)<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-8) WFLYJCA0018: Started Driver service with driver-name = postgres<br />
INFO [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) WFLYJCA0018: Started Driver service with driver-name = postgres_XA<br />
</pre><br />
<br />
<br />
===== Criação dos Datasources =====<br />
<br />
Logo acima da seção ''<drivers>'' está a seção ''<datasources>''. Assim como o pje da família 1.x, poderemos usar até 3 datasources a saber: '''pjeDS''', '''pjeLogDS''' e '''pjeBinDS''', sendo este último '''opcional''' para quem optar pelo jcr-storage. Atualmente o CNJ recomenda a utilização do jcr-storage. <br />
A criação do datasource aqui não diferencia muito do jboss 5.1, bastando acrescentar as entradas. Os valores aqui ''não'' são valores de referencia, são apenas exemplos. Cada instalação deve verificar os valores ideias do pool de conexões podendo ser maior conforme a necessidade.<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeDS" pool-name="pje_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje2<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<new-connection-sql>set search_path=client,core,jt,criminal,public,acl</new-connection-sql><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWORD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
<xa-datasource jndi-name="java:/pjeLogDS" pool-name="pje_log_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_log<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
<br />
Como dito antes, opcionalmente pode-se criar o datasource para o bin<br />
<br />
<br />
<pre><br />
<xa-datasource jndi-name="java:/pjeBinDS" pool-name="pje_bin_pool" enabled="true" use-java-context="true" use-ccm="true"><br />
<xa-datasource-property name="DatabaseName"><br />
pje_bin<br />
</xa-datasource-property><br />
<xa-datasource-property name="ServerName"><br />
10.0.0.1<br />
</xa-datasource-property><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<driver>postgres_XA</driver><br />
<xa-pool><br />
<min-pool-size>1</min-pool-size><br />
<max-pool-size>10</max-pool-size><br />
<prefill>true</prefill><br />
</xa-pool><br />
<security><br />
<user-name>USER</user-name><br />
<password>PASSWD</password><br />
</security><br />
<validation><br />
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/><br />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/><br />
</validation><br />
</xa-datasource><br />
</pre><br />
<br />
Um detalhe a ser acrescido é a possibilidade de usar o pgBouncer e, para isso, foram adicionados os seguintes parâmetros de configuração:<br />
<pre><br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
</pre><br />
Estes parâmetros são opcionais, mas recomendados.<br />
<br />
Ao inciar o wildfly, se tudo estiver correto, serão mostradas as seguintes linhas no log do servidor<br />
<pre><br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-7) WFLYJCA0001: Bound data source [java:/pjeLogDS]<br />
INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-5) WFLYJCA0001: Bound data source [java:/pjeDS]<br />
</pre><br />
Caso contrário, um erro será gerado.<br />
<br />
===== MNI e Proxy Apache ou outros =====<br />
<br />
Caso o servidor do wildfly esteja atrás de um proxy (Apache ou outros), talvez exista a necessidade de alterar o endereço de envio do <soap:address> do MNI, segue um exemplo:<br />
<br />
<pre><br />
<subsystem xmlns="urn:jboss:domain:webservices:2.0"><br />
<modify-wsdl-address>true</modify-wsdl-address><br />
</pre><br />
<pre style="font-weight:bold"><br />
<wsdl-host>www.cnj.jus.br</wsdl-host><br />
<wsdl-port>80</wsdl-port><br />
<wsdl-secure-port>443</wsdl-secure-port><br />
<wsdl-uri-scheme>https</wsdl-uri-scheme><br />
</pre><br />
<pre><br />
<endpoint-config name="Standard-Endpoint-Config"/><br />
<endpoint-config name="Recording-Endpoint-Config"><br />
<pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM"><br />
<handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/><br />
</pre-handler-chain><br />
</endpoint-config><br />
<client-config name="Standard-Client-Config"/><br />
</subsystem><br />
</pre><br />
<br />
Isto fará com que o endereço de retorno do WSDL seja reescrito e não seja enviado o endereço interno do servidor de aplicação<br />
<br />
<pre><br />
<soap:address location="https://www.cnj.jus.br/pjecnj/intercomunicacao"/><br />
</pre><br />
<br />
<br />
<br />
O próximo passo é apenas realizar a implantação (deploy) do pje.<br />
<br />
==== Configuração do número máximo de arquivos abertos - unity - systemd ====<br />
Especial atenção ao número máximo de arquivos que o usuário ''wildfly'' pode abrir. Para isso temos que configurar a unit do systemd para não limitar o usuário ''wildfly'' quando ao número máximo de arquivos abertos.<br />
<br />
Editar a unity do wildfly - Neste exemplo usaremos a unit exemplo /etc/systemd/system/wildfly-standalone.service. Deveremos incluir a diretiva '''LimitNOFILE=infinity'''<br />
<br />
<pre><br />
[Unit]<br />
Description=WildFly application server<br />
After=network.target<br />
<br />
[Service]<br />
Type=simple<br />
User=wildfly<br />
Group=wildfly<br />
ExecStart=/opt/wildfly/bin/standalone.sh<br />
TimeoutSec=3min<br />
LimitNOFILE=infinity<br />
<br />
[Install]<br />
Alias=wildfly.service<br />
WantedBy=multi-user.target<br />
</pre><br />
<br />
Recarregar as definições do systemd<br />
<br />
<pre><br />
systemctl daemon-reload<br />
</pre><br />
<br />
Reinicar o wildfly<br />
<br />
<br />
<br />
<br />
Comentários e críticas sempre serão bem-vindos para melhorar este tutorial de configuração.<br />
<br />
== Instalação do PJe no servidor de aplicação ==<br />
A instalação do PJe no servidor de aplicação é feita em duas etapas: a configuração dos bancos de dados no servidor de aplicação e a efetiva implantação do sistema.<br />
=== Configuração dos esquemas ===<br />
<!-- https://www.cnj.jus.br/jira/browse/PJEII-7142 --><br />
Na utilização de postgres, para que a manipulação do banco de dados do PJe possa ser feita sem utilização dos esquemas na referência às tabelas, é necessário incluir no parâmetro search_path os esquemas existentes no banco.<br />
<br />
O search_path é um parâmetro que está presente no arquivo "postgresql.conf". Por padrão, a linha estará assim:<br />
<br />
#search_path = '"$user",public' # schema names<br />
<br />
Deverá ficar assim:<br />
<br />
search_path = '"$user",public,client,core,jt,criminal,acl' # schema names<br />
<br />
Se, por ventura em um outro momento, for criado um novo esquema no banco, deverá ser incluído no search_path. É importante retirar o símbolo "#" da frente do nome search_path, caso contrário, as alterações não serão reconhecidas pelo servidor de Banco de Dados.<br />
<br />
Após as alterações é necessário rodar este comando com o usuário "postgres" na base "postgres":<br />
<br />
SELECT pg_reload_conf();<br />
<br />
O comando acima deverá ser executado uma vez em cada servidor que foi alterado. Por exemplo: suponhamos que há um servidor "172.172.0.170" e nesse servidor há dez bases de dados. É suficiente rodar o comando pg_reload apenas uma vez na base "postgres" desse servidor. As configurações já servirão para todas as outras bases do servidor. Se por ventura for criada uma nova base depois, a mesma já reconhecerá as configurações também. Caso tenha um outro servidor de banco de dados, o mesmo procedimento deverá ser feito para ele também.<br />
<br />
Obs: Não será necessário reiniciar o servidor de Banco de Dados, pois esse parâmetro é dinâmico e a execução do pg_reload é suficiente para o servidor reconhecer as novas configurações.<br />
<br />
=== Configuração dos mocks ===<br />
<br />
Para uso em ambiente de teste, o PJe permite a utilização de simulação no acesso a serviços externos, em particular à validação de CPF e CNPJ na Receita Federal do Brasil e à validação da OAB no Conselho Federal da OAB. Para utilizar os simuladores, deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros como "true".<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" <br />
precedence="100" installed="true"/><br />
<component name="consultaClienteOAB" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteOABMock" precedence="100" installed="true"/><br />
<br />
=== Configuração de parâmetros para upload de arquivos ===<br />
<br />
A partir da versão 1.6.0, nas funcionalidades de protocolo inicial, de anexação de documentos nos detalhes do processo e na resposta de expediente, o PJE permite que se faça upload de documentos múltiplos anexados ao documento principal. A configuração padrão de instalação do PJe utiliza os seguintes parâmetros como base:<br />
<br />
application/pdf:1572864 <br />
audio/mpeg:5242880<br />
audio/ogg:5242880<br />
audio/vorbis:5242880 <br />
image/png:1572864<br />
video/ogg:10485760<br />
video/mp4:10485760<br />
<br />
Ou seja, permite os mimetypes listados acima com os respectivos tamanhos em bytes. <br />
<br />
Pode-se alterar esse parâmetros acrescentando uma linha no arquivo components.xml, que adicione os tipos que se deseja permitir associados aos respectivos tamanhos. Como exemplo, pode-se utilizar a linha abaixo: <br />
<br />
<factory name="mimeData" scope="application" value="application/pdf:1572864;audio/mpeg:5242880;audio/ogg:5242880;audio/vorbis:5242880;<br />
image/png:1572864;video/ogg:10485760;video/mp4:10485760" auto-create="true"/><br />
<br />
É válido ressaltar que no web.xml deve estar permitido o tamanho configurado, ou seja, o parâmetro maxRequestSize deve ser maior ou igual ao maior tamanho configurado no components.xml.<br />
<br />
<param-name>maxRequestSize</param-name><br />
<param-value>10485760</param-value><br />
<br />
=== Configuração dos bancos de dados no servidor de aplicação ===<br />
O PJe utiliza, atualmente, duas fontes de dados para armazenamento das informações. Uma das fontes é o banco de metadados do sistema, onde ficam armazenadas todas as informações das partes, processos e documentos. A segunda fonte de dados é um banco onde ficam armazenados apenas os documentos binários, ou seja, o efetivo conteúdo daqueles documentos que foram enviados pelas partes ao sistema, e não produzidos no próprio sistema. Há a possibilidade de se utilizar uma terceira fonte de dados, responsável por armazenar os dados de log do sistema (tb_log e tb_log_detalhe). Recomendamos essa possibilidade para melhoria de performance.<br><br />
Essas fontes de dados recebem nomes específicos nos arquivos de configuração do próprio PJe, que devem ser referenciados quando da criação do arquivo de fontes de dados, no JBoss AS. Independente de se utilizar uma fonte de dados separada para o armazenamento de logs, a referência aos logs é feita separadamente no arquivos de fontes de dados. Em nossos testes, configuramos a quantidade mínima de conexões da base de log com a metade da máxima da base da aplicação e a quantidade máxima com os mesmos valores da base de aplicação. Mas os tribunais devem configurar da forma que acharem mais adequado.<br><br />
A definição de fontes de dados no JBoss AS é feita por meio de arquivos XML terminados em “-ds.xml” localizados no diretório /deploy da configuração do servidor escolhido. Para uma configuração padrão, seria o arquivo JBOSS_DIR/server/default/deploy/PJE-ds.xml.<br><br />
Junto com o pacote de instalação do sistema, é disponibilizado o arquivo PJE-ds.xml, que precisa ser alterado com as configurações locais. O conteúdo desse arquivo deve seguir o padrão da definição de fontes de dados. Abaixo, transcreve-se um arquivo de exemplo cujos IPs dos servidores de bancos de dados, nomes de bancos de dados e usuários e senhas devem ser modificados apropriadamente.<br><br><br />
<?xml version="1.0" encoding="UTF-8"?> <br><br />
<nowiki><!-- $Id: PJE2-dev-ds.xml 10915 2010-08-17 21:14:53Z daniel_cnj $ --> </nowiki><br><br />
<!DOCTYPE datasources <br />
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN" <br />
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"> <br />
<datasources> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
<xa-datasource> <br />
<jndi-name>PJE_DESCANSO_BIN_DS</jndi-name> <br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property> <br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property> <br />
<xa-datasource-property name="DatabaseName">pje_descanso_bin</xa-datasource-property> <br />
<user-name>postgres</user-name> <br />
<password>senha</password> <br />
<track-connection-by-tx /> <br />
<metadata><br />
<type-mapping>PostgreSQL 8.0</type-mapping><br />
</metadata><br />
</xa-datasource><br />
<xa-datasource><br />
<jndi-name>PJE_DESCANSO_LOG_DS</jndi-name><br />
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class><br />
<xa-datasource-property name="ServerName">192.168.122.55</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">5432</xa-datasource-property><br />
<xa-datasource-property name="DatabaseName">pje_log</xa-datasource-property><br />
<user-name>postgres</user-name><br />
<password>senha</password><br />
<track-connection-by-tx/><br />
<metadata> <br />
<type-mapping>PostgreSQL 8.0</type-mapping> <br />
</metadata> <br />
</xa-datasource> <br />
</datasources><br />
<br />
=== Implantação do PJe ===<br />
A implantação do PJe no servidor de aplicação, mantidas as informações padronizadas, limita-se a colocar o arquivo WAR do sistema na pasta /deploy da configuração de servidor escolhida para a instalação.<br><br />
Uma vez efetivada essa cópia na pasta e inicializado o servidor de aplicação (comando run.sh), o próprio servidor de aplicação se responsabilizará por complementar a instalação. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor, com o nome sem a extensão. Assim, se o arquivo WAR tinha nome “pje.war” e o servidor estiver disponibilizando o acesso seguro HTTPS no endereço “123.45.67.89”, o sistema será acessível apontando o navegador para <nowiki>https://123.45.67.89/pje</nowiki>.<br><br />
Como ato final da instalação, ainda utilizando o exemplo acima, acesse o endereço <nowiki>https://123.45.67.89/pje/pages/admin/reindex.seam</nowiki> (utilizando o mesmo servidor do exemplo acima) para gerar os índices necessários à aplicação. O procedimento força a atualização dos índices do hibernate-search, utilizado, entre outras funcionalidades, na identificação de processos preventos.<br />
<br />
== Acesso ao serviço da Receita Federal ==<br />
<br />
Finalizada a instalação do servidor de aplicação, deve-se instalar o certificado digital do CNJ. Somente assim o sistema será capaz de se comunicar com o serviço de consulta a dados da Receita Federal do Brasil. O serviço de validação de CPF da receita federal é um serviço contratado pelos órgãos, públicos ou não, para consulta de CPF. Dessa forma, a receita exige que o órgão forneça sua identificação para que ela responda à consulta só aos órgãos com os quais ela tem contrato. A forma automática que a receita tem de validar quem está fazendo a consulta é através do certificado digital do órgão contratante, que é fornecido quando o site que realiza a consulta o envia para a receita. Ao se utilizar métodos java, o certificado a ser enviado deve estar configurado na máquina java utilizada pelo servidor de aplicação que faz a consulta do CPF. Os passos descritos aqui se destinam a esse fim, ou seja, configurar o java utilizado pelo Jboss de forma que ele armazene o certificado que será utilizado para que a receita valide se a consulta está sendo realizada através de um órgão contratante do seu serviço. Para o caso de tribunais que não têm contrato próprio, pode-se utilizar o certificado do CNJ. O certificado do CNJ pode ser obtido através de transações seguras realizadas com o CNJ. Através do site https://www.cnj.jus.br/ecnj é um exemplo. Ao acessar esse endereço, você terá acesso a um cadeado do lado esquerdo da barra de endereços que, sendo acionado, permitirá a exibição e guarda do certificado. Ao exibir o certificado, haverá uma aba Detalhes contendo um botão para exportação do certificado, que deve ser salvo em uma pasta do servidor para posterior importação para o java. Esse arquivo é importado para o Java através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old <br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
# ao executar o comando, o sistema solicitará a senha de acesso ao banco de certificados (<trutstore>) que, se não tiver sido alterada na instalação do Java, será changeit<br />
# Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail para '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET diretamente na máquina servidora da aplicação<br />
<br />
<br />
Ao atualizar o seu certificado, o CNJ notificará os tribunais usuários do PJe através de lista de contatos para que eles realizem a atualização conforme procedimento acima. Após a atualização, o servidor deverá ser reiniciado.<br />
<br />
Para instalações de teste, o acesso ao serviço pode ser interceptado por um serviço interno do PJe, que retornará dados aleatórias para os CPFs e CNPJs consultados. Para utilizar o simulador ([http://pt.wikipedia.org/wiki/Mock_Object Mock]), deve-se configurar, no arquivo components.xml, disponível no pacote war da aplicação, os seguintes parâmetros:<br />
<br />
<component name="consultaClienteReceitaPFCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPFMock" precedence="100" installed="true"/><br />
<component name="consultaClienteReceitaPJCNJ" class="br.jus.cnj.pje.nucleo.service.ConsultaClienteReceitaPJMock" precedence="100" installed="true"/><br />
<br />
== Procedimentos para evolução de versão ==<br />
Em um cenário de evolução de versão em situação de produção, os passos para reinstalação são os mesmos acima, devendo-se atentar especialmente no que é posto nas notas de liberação de versão. Nelas são destacados os procedimentos especiais de modificação e atualização dos bancos de dados e o meio de preservação de dados já existentes não armazenados em bancos de dados.<br><br />
Deve-se sempre lembrar que a evolução de versão em situação de produção deve ser sempre precedida de realização de cópia de segurança dos dados e de testes de evolução em ambientes de homologação.<br />
== Guia rápido de instalação ==<br />
<br />
=== Softwares requeridos ===<br />
* PostgreSQL 9.1 – http://www.postgresql.org<br />
* Oracle Java Development Kit 1.6.0_33 – http://java.sun.com (pode ser utilizada também a [http://openjdk.java.net/ OpenJDK], que tem apresentado melhor performance em alguns estudos de caso)<br />
* Driver JDBC PostgreSQL 9.1 – http://jdbc.postgresql.org<br />
* JBoss Application Server 5.1.0GA-JDK6 – http://www.jboss.org<br />
* PJe – ftp://ftp.cnj.jus.br/<br />
<br />
=== Pacote de instalação do PJe ===<br />
O pacote de instalação do PJe é composto dos seguintes arquivos:<br />
* pje.war: arquivo de deploy da aplicação<br />
* instalacao_pje_1_4_x.pdf: manual de instalação do sistema<br />
* release_notes_pje_[versão].doc: lista das melhorias e correções incluídas na versão <br />
* PJE-ds.xml: arquivo de configuração de acesso às bases de dados do sistema<br />
* pje_[versão]_limpa.sql e pje_[versão]_limpa_bin.sql: scripts para criação das bases de dados minimamente configuradas<br />
* /scripts: diretório onde são incluídos scripts para migração da versão imediatamente anterior para a versão atual<br />
* /scripts/imports: diretório onde são incluídos scripts de carga de dados<br />
* /outros/InstallCert.java: arquivo utilitário para inclusão do certificado do CNJ na lista de certificados confiáveis da JVM<br />
Para baixar o pacote de instalação do PJe, é necessário acessar a área de versões do sistema, disponibilizada no FTP do CNJ.<br><br />
1. Conecte-se ao FTP do CNJ (via prompt de comando ou ferramenta): ftp.cnj.jus.br<br><br />
2. Informe o usuário e a senha disponibilizados aos tribunais para acesso ao FTP do CNJ<br><br />
3. Certifique-se que a configuração de transferência do FTP esteja setada para binário ou automático a fim de realizar a transferência do pacote de instalação corretamente<br><br />
4. navegue até o diretório “pje_descanso”<br><br />
5. baixe o arquivo compactado da versão mais recente<br><br />
<br />
=== Sistema gerenciador do banco de dados ===<br />
1. Instale a versão 9.1 do PostgreSQL e configure os arquivos postgresql.conf e pg_hba.conf<br><br />
2. Crie as bases de dados “pje_versao” e “pje_versao_bin”, onde “versao” referencia o número da versão macro do sistema. Por exemplo: “pje_1_4” e “pje_1_4_bin”<br><br />
3. Certifique-se que as bases de dados sejam criadas com as configurações exigidas para o correto funcionamento do sistema:<br />
* encoding: LATIN1<br />
* template: template0<br />
* collation: C<br />
* character type: C<br />
4. Utilizando o comando psql, restaure as bases de dados “pje_versao_limpa.sql” e “pje_versao_limpa_bin.sql”, onde “versão” referencia o número da versão micro do sistema. Por exemplo: “pje_1_4_3_limpa.sql” e “pje_1_4_3_limpa_bin.sql”:<br><br><br />
psql -U USUARIO -h SERVIDOR -d DATABASE -W < ARQUIVO, onde:<br />
USUARIO - usuário de banco de dados com acesso a base criada<br />
SERVIDOR - IP ou DNS do servidor que responde ao PostgreSQL<br />
DATABASE - banco de dados criado para restauração do dump<br />
ARQUIVO - caminho completo ou relativo para o arquivo SQL que contém a restauração<br />
5. Execute o comando SQL de INSERT listado abaixo para especificar o CPF e o nome usuário administrador (admin). Atente para a necessidade de substituir os parâmetros <CPF> e <NOME> pelo número do CPF (com máscara) e o nome do detentor do documento.<br />
INSERT INTO client.tb_pess_doc_identificacao<br />
( <br />
id_pessoa_doc_identificacao, <br />
cd_tp_documento_identificacao, <br />
nr_documento_identificacao, <br />
dt_expedicao, <br />
ds_nome_pessoa, <br />
in_usado_falsamente, <br />
in_ativo, <br />
ds_orgao_expedidor, <br />
id_estado_expedidor, <br />
id_pessoa, <br />
in_principal, <br />
dt_usado_falsamente, <br />
id_pais, <br />
id_usuario_cadastrador<br />
)<br />
VALUES <br />
(<br />
nextval('client.sq_tb_pessoa_doc_identificacao'), <br />
'CPF', <br />
'<CPF>', <br />
NULL, <br />
'<NOME>', <br />
'N', <br />
'S',<br />
'Secretaria da Receita Federal', <br />
NULL, <br />
1, <br />
'S',<br />
NULL, <br />
NULL, <br />
NULL<br />
);<br />
<br />
=== Servidor de aplicação ===<br />
1. Instale o servidor JBoss Application Server 5.1.0, descompactando o arquivo de instalação jboss-5.1.0.GA-jdk6, que se encontra disponível http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/ <br><br />
2. Modifique o arquivo JBOSS_DIR/server/default/deployers/seam.deployer/META-INF/seam-deployers-jboss-beans.xml, apagando ou comentando a linha que define o bean SeamMTMatcher <br><br />
3. Modifique o arquivo JBOSS_DIR/server/default/deployers/jbossws.deployer/META-INF/standard-jaxws-client-config.xml, alterando o valor da propriedade chunksize de “2048” para “0”<br><br />
4. Acrescente a biblioteca JAR do driver JDBC do PostgreSQL à pasta JBOSS_DIR/Server/default/lib<br><br />
5. Certifique-se que o LOCALE do servidor de aplicações esteja corretamente configurado para PT_BR. Em servidores Linux RedHat, essa configuração é feita no atributo LANG do arquivo /etc/sysconfig/i18n (LANG=”pt_BR.UTF-8”)<br><br />
6. Copie o arquivo PJE-ds.xml para a pasta JBOSS_DIR/Server/default/deploy e altere seu conteúdo para refletir as configurações de acesso às bases de dados instaladas<br><br />
7. Descompacte o conteúdo do arquivo “pje.war” na pasta JBOSS_DIR/Server/default/deploy<br><br />
8. O sistema estará disponível para acesso no endereço em que foi disponibilizado o servidor. Por exemplo: https://host/pje, onde “host” é o endereço do servidor.<br><br />
9. Como ato final da instalação, acesse o endereço http://host/pje/pages/admin/reindex.seam para gerar os índices necessários à aplicação<br><br />
<br />
=== Acesso ao serviço da Receita Federal ===<br />
<br />
Importar o certificado digital para acesso à Receita através das instruções a seguir:<br />
<br />
# salve o arquivo do certificado em algum diretório<br />
# abra uma janela onde você possa executar comandos via linha de comando<br />
# na pasta lib/security do java, renomeie o arquivo cacerts para um outro nome qualquer, por exemplo, cacerts_old<br />
# execute o comando keytool -import -alias <alias> -file <certificado> -keystore <truststore>, onde <alias> é o apelido do certificado, <certificado> é o caminho onde o certificado foi salvo no passo 1 e <truststore> é o caminho de armazenamento dos certificados no java. Exemplo: keytool -import -alias cnj -file \tmp\www.cnj.jus.br.crt -keystore /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/security/cacerts<br />
<br />
Concluído o procedimento de instalação do certificado digital do CNJ, envie e-mail ao grupo '''g-assistencia.qualidade.pje@cnj.jus.br''', informando os endereços IPs de saída <br /> dos servidores de aplicação para acesso ao serviço de consulta da Receita Federal do Brasil. Após a confirmação de cadastro, certifique-se de que os IPs de saída estão <br /> de fato cadastrados no CNJ, acessando o endereço https://www.cnj.jus.br/testeReceitaFederal/wsdl/proxyReceita.wsdl, por meio da execução do comando WGET <br /> diretamente na máquina servidora da aplicação.<br />
<br />
=== Configuração JCR-Storage === <br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=56c24847d6ce3c82f7fbf8ecd8b71ab1<br />
2) Entrar na pasta "server" para iniciar o serviço.<br />
#Mudar as propriedades "jcr.server.tempDir" e "jcr.server.repoDir" do arquivo "server.properties" para apontar onde o repositório deve ser criado.<br />
# Iniciar o serviço conforme comando.<br />
## java -jar jcr-storage-server-exec.jar -httpPort 9000 -Dbr.jus.cnj.jcr.serverProperties=<CAMINHO_DO_ARQUIVO>/server.properties<br />
<br />
3) Incluir na tabela de parâmetros do PJe os seguintes parâmetros:<br />
{| border=1 width="70%"<br />
|-<br />
|'''Variável'''<br />
|'''Descrição'''<br />
|'''Valor'''<br />
|-<br />
|jcr.url <br />
|Url de conexão <br />
|http://localhost:9000/storage/documents<br />
|-<br />
|jcr.username<br />
|Usuario de conexão<br />
|Usuario<br />
|-<br />
|jcr.password<br />
|Senha de conexão<br />
|Senha<br />
|-<br />
|}<br />
*Opcionalmente pode-se utilizar o arquivo jcr-storage.properties para passar estes dados ao PJe:<br />
**Copiar o arquivo jcr-storage.properties da pasta "lib-jboss" (arquivo baixado no link acima) para a pasta lib do JBoss<br />
<br />
=== Configuração DB-Storage ===<br />
<br />
1) Baixar os arquivos do link abaixo e informar a senha "pje@CNJ"<br />
http://www.cnj.jus.br/owncloud/public.php?service=files&t=bb1aecbc1cbf34bb0dc9bbb79b05bf9c<br />
<br />
2) criar um banco para o db-storage conforme o script create-db-storage.sql<br />
<br />
3) Configurar o data source PJE_DESCANSO_BIN_DS de modo que aponte para o banco criado.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Uso_do_PgBouncer_com_o_PJeUso do PgBouncer com o PJe2016-12-14T13:56:35Z<p>Marcelo.campos: /* Desabilitar prepared_statemets no PJe */</p>
<hr />
<div>O PgBouncer é um gerenciador de conexões com o banco de dados PostgreSQL. É também, um método para otimizar as conexões com o banco de dados. Todos os manuais de bancos de dados informam que a tarefa de criar uma nova conexão com o SGDB (Sistema Gerenciador de Banco de Dados) é um procedimento oneroso, tanto do ponto de vista de alocação e uso dos recursos do banco, como do sistema operacional.<br />
<br />
Infelizmente os recursos são limitados e não há como criar um número muito alto de conexões com o SGDB. Existem alguns estudos sobre o banco de dados PostgreSQL que demonstram que o número máximo de conexões ativas que o banco suporta está contido entre 2 a 4 vezes o número de CPU cores disponíveis para o banco. Não entra nesse cômputo o número de conexões IDLE (esperando comando).<br />
<br />
Conforme o aumento do uso do PJe por usuários internos (servidores e juízes) e externos (advogados e população em geral) cria-se a necessidade de aumentar os recursos de infraestrutura alocada para o projeto, então aumenta-se o número de servidores de aplicação (JBoss), por exemplo. Com esse crescimento, o número de conexões com o banco de dados também aumenta, contudo há um limite para esse crescimento de conexões ativas com o PostgreSQL. <br />
<br />
Por exemplo, o SGDB normalmente completa um mesmo pacote de 10.000 transações mais rápido usando 5 conexões ao invés de 1, porém se usarmos 500 certamente será mais lento. O valor ideal do número de conexões depende muito das particularidades de cada instalação e requer um trabalho de ajuste fino. <br />
<br />
Se imaginarmos um gráfico de performance com o número de conexões no eixo X e TPS (Transações por Segundo) no eixo Y, veremos um crescimento de performance enquanto mais conexões são criadas até atingirmos um ponto de saturação, e neste ponto sua performance cairá abruptamente. <br />
<br />
Em conjunto temos o JBoss e o seu gerenciador de conexões. Com o passar do tempo e maturidade das instalações do PJe pelo Brasil, verificamos que o JBoss muitas vezes não é eficiente como deveria no gerenciamento do pool de conexões, muitas vezes sendo necessário reiniciar a instância pois, aparentemente, fica indisponível o JVM (Java Virtual Machine).<br />
<br />
Esta solução encontra-se instalada em tribunais com grande número de acessos simultâneos, sendo reportado ao CNJ o uso simultâneo com mais de 40 servidores de aplicação JBoss.<br />
<br />
=== Recursos de Hardware para o PgBouncer ===<br />
<br />
Este gerenciador de conexões não requer muitos recursos de hardware. Um servidor virtual com 4 cores, 4 GB de memória e 30 GB de disco, são suficientes. Contudo o ''throughput'' de rede deve ser monitorado pois este é o gargalo. Neste servidor, instalar o PgBouncer em sua versão mais recente. É recomendado que a máquina de instalação do pgBouncer seja separada do banco.<br />
<br />
O PgBouncer possui 3 modos de gerenciamento do pool de conexões: session, transaction e statement. Apenas o modo '''transaction''' será o usado. O modo ''statement'' não pode ser usado e o modo ''session'' não traz ganho.<br />
<br />
Segue abaixo um conjunto de alterações no arquivo de inicialização do PgBouncer. O arquivo de inicialização, normalmente encontra-se em '''''/etc/pgbouncer/pgbouncer.ini''''' e é um arquivo texto simples e relativamente fácil de ser configurado. Possui duas sessões a saber [''dabatases''] e [''pgbouncer'']. <br />
<br />
Na sessão '''[''databases'']''' será configurado como o PgBouncer se conecta ao PostgreSQL, segue um exemplo simples:<br />
<br />
Pje = host = 10.1.1.1 port = 5432<br />
<br />
Já na seção '''[''pgbouncer'']''' encontram-se a maior parte das configurações:<br />
<br />
logfile = /var/log/pgbouncer/pgbouncer.log<br />
pidfile = /var/run/pgbouncer/pgbouncer.pid<br />
<br />
listen_addr = *<br />
listen_port = 6432<br />
<br />
auth_type = trust<br />
auth_file = /etc/pgbouncer/userlist.txt<br />
<br />
admin_users = postgres<br />
stats_users = stats, postgres<br />
<br />
pool_mode = transaction<br />
<br />
server_reset_query = DISCARD ALL<br />
<br />
ignore_startup_parameters = extra_float_digits,application_name<br />
server_check_query = select 1<br />
server_check_delay = 30<br />
<br />
max_client_conn = 10000<br />
default_pool_size = 130<br />
min_pool_size = 80<br />
<br />
idle_transaction_timeout = 180<br />
<br />
<font color=red>'''NOTA:'''</font> Importante observar os parâmetros ''max_client_conn'' e ''default_pool_size''. O primeiro informa quantas conexões estarão disponíveis para os servidores de aplicação JBoss e outros clientes. O segundo informa o número máximo de conexões com o banco de dados. Estes valores devem ser configurados de acordo com a sua instalação e não são valores de referências.<br />
<br />
=== Desabilitar prepared_statemets no PJe ===<br />
<br />
Contudo, para usarmos o PgBouncer no modo ''transaction'', devemos desabilitar a ''feature prepared statements'' do hibernate usado no PJe. Para desabilitarmos o ''prepared statements'' no PJe é necessário usar o driver jdbc 9.3 ou superior e alterar o ''datasource'' no JBoss, incluindo as seguintes diretivas:<br />
<br />
<xa-datasource-property name="prepareThreshold">0</xa-datasource-property><br />
<connection-property name="autoCommit">false</connection-property><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<shared-prepared-statements>false</shared-prepared-statements><br />
<br />
Para o JBOSS 7 ou Wildfly 9 ou superior<br />
<br />
<xa-datasource-property name="prepareThreshold"><br />
0<br />
</xa-datasource-property><br />
<statement><br />
<prepared-statement-cache-size>0</prepared-statement-cache-size><br />
<share-prepared-statements>false</share-prepared-statements><br />
</statement><br />
<br />
<br />
Agora devemos apontar o endereço do servidor PostgreSQL usado no datasource implantado no JBoss para o PgBouncer:<br />
<br />
<xa-datasource-property name="ServerName">10.1.1.2</xa-datasource-property><br />
<xa-datasource-property name="PortNumber">6432</xa-datasource-property></div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2016-11-25T13:30:42Z<p>Marcelo.campos: /* Aplicativo PJeOffice para instalação */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice-1.0.8.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.8_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.8_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.8_amd64.deb pje-office_amd64.deb]<br />
|-<br />
|'''Unix'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.8_unix_no_embedded.tar.gz pje-office_1.0.8_unix_no_embedded.tar.gz]<br />
|}<br />
<br />
== Aplicativos para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração modo simples (somente windows) ==<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
== Configuração modo avançado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
== Configurando solicitação de senha do certificado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2016-11-25T13:29:25Z<p>Marcelo.campos: /* Aplicativo PJeOffice para instalação */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice-1.0.8.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.8_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.8_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.8_amd64.deb pje-office_amd64.deb]<br />
|}<br />
<br />
== Aplicativos para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração modo simples (somente windows) ==<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
== Configuração modo avançado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
== Configurando solicitação de senha do certificado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2016-11-11T17:59:07Z<p>Marcelo.campos: /* Aplicativo PJeOffice para instalação */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice-1.0.7.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.7_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.7_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.7_amd64.deb pje-office_amd64.deb]<br />
|}<br />
<br />
== Aplicativos para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração modo simples (somente windows) ==<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
== Configuração modo avançado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
== Configurando solicitação de senha do certificado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2016-11-11T17:57:32Z<p>Marcelo.campos: /* Aplicativo PJeOffice para instalação */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/PJeOffice-1.0.7.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.7_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.7_i386 pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://ftp.pje.jus.br/pje/programs/pje-office/pje-office_1.0.7_amd64 pje-office_amd64.deb]<br />
|}<br />
<br />
== Aplicativos para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração modo simples (somente windows) ==<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
== Configuração modo avançado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
== Configurando solicitação de senha do certificado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Solução de Problemas ==<br />
<br />
'''Erro:''' Ao tentar acessar o PJe realizando o [[Acesso_ao_PJe#Login_com_certificado_digital|Login com certificado digital]] e com o [[Acesso_ao_PJe#Modo_de_assinatura|modo de assinatura]] '''LOCAL''' apresenta a janela com a mensagem: '''Ops...... Não foi possível encontrar nenhum certificado digital!''':<br />
<br />
[[Arquivo:Erro_pjeoffice_01.jpg|900px]]<br />
<br />
<br><span style="font-size:medium;"><font color=red>'''Solução:'''</font></span><br />
<br />
Esse ocorre quando o aplicativo PJeOffice não encontra o certificado digital. Antes de realizar os passos abaixo, é necessário certifica-se que o certificado digital está devidamente configurado e conectado ao seu computador. Para mais orientações: [[Configuração_do_Ambiente#Certificado_Digital|Configuração do Certificado Digital]]. Após realizar a verificação e certifica-se que está OK, realizar os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo). <br />
[[Arquivo:Download14.png|300px]]<br />
<br />
<br>'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]]<br />
<br />
<br>'''Passo 3''': O aplicativo irá exibir a janela abaixo, selecione a aba Avançado e em Providers clique no seu nome:<br><br />
[[Arquivo:Configurar_pjeoffice.jpg|500px]]<br />
<br />
<br>'''Passo 4''': Na janela que se abre, inserir a senha do token e clicar em OK. Realizar uma nova tentativa de [[Acesso_ao_PJe|acesso ao PJe]].<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Navegador_PJeNavegador PJe2016-11-09T13:07:28Z<p>Marcelo.campos: /* Aplicativo Navegador PJe para instalação */</p>
<hr />
<div>[[Arquivo:Icone navegador pje.png|right|x150px]]<br />
O PJe possui alguns pré-requisitos para utilização do sistema, o que acarreta a necessidade de instalação e configuração local de várias ferramentas no computador do usuário. Com intuito de melhorar a experiência com o sistema PJe e dirimir as eventuais ocorrências na configuração dos computadores pessoais foi elaborado o aplicativo Navegador PJe.<br />
<br />
O Navegador PJe é uma versão customizada do navegador Mozilla Firefox para uso exclusivo do sistema PJe em todos Tribunais onde foi instalado e no próprio Conselho Nacional de Justiça. Devido a questões de segurança, orienta-se a não alterar as configurações do aplicativo.<br />
<br />
O objetivo do aplicativo é disponibilizar uma ferramenta pré-configurada para acesso ao sistema PJe englobando o Mozilla Firefox, o Java e as cadeias de certificados válidas, além de realizar automaticamente as atualizações necessárias proporcionando assim maior segurança para os usuários do sistema.<br />
<br />
== Dedicatória ==<br />
Não teríamos esse navegador sem a ajuda do '''Tribunal de Justica do Rio Grande do Norte'''. Na verdade, todo esse trabalho foi desenvolvido por aquele tribunal.<br />
<br />
== Público Alvo ==<br />
<br />
Todos os usuários que utilizam o sistema PJe nos tribunais, tais como:<br />
* advogados,<br />
* partes,<br />
* servidores,<br />
* magistrados, e<br />
* procuradores.<br />
<br />
== Considerações ==<br />
<br />
* O instalador disponível nessa página contém as versões do Mozilla Firefox e do Java compatíveis com o PJe, além de já estar habilitada a opção de popups do PJe.<br />
* Outras versões do Mozilla ou de outros navegadores instalados no seu equipamento não serão afetados por esta instalação.<br />
* A partir da versão 2, atualizada em 28/06/2016, o Navegador PJe está configurado para Usar as configurações de proxy do sistema operacional.<br />
<br />
<br />
<font color=green>'''IMPORTANTE:'''</font> <br />
<br>Para o funcionamento integral do aplicativo é necessário que o [[Configura%C3%A7%C3%A3o_do_Ambiente#Certificado_Digital| Certificado Digital]] do usuário esteja instalado e funcional, de acordo com as orientações do fornecedor do seu dispositivo (token ou cartão).<br />
<br />
== Aplicativo Navegador PJe para instalação ==<br />
<br />
Para iniciar o download do programa, siga os passos abaixo:<br />
<br />
<br />
'''Passo 1:''' Realize o download do arquivo e aguarde o download terminar. <br />
<br />
{| class="wikitable" border="1"<br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="4" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
! colspan="1" style="width: 180px;" |Servidor 2 <br />
! colspan="1" style="width: 180px;" |Servidor 3 <br />
! colspan="1" style="width: 180px;" |Servidor 4 <br />
|-<br />
| '''Windows'''<br />
|[http://pje.stf.jus.br/pje/programs/navegadorpje.zip navegadorpje.zip]<br />
|[http://ftp.pje.jus.br/pje/programs/navegadorpje.zip navegadorpje.zip]<br />
|[http://201.49.152.209/pje/programs/navegadorpje.zip navegador.zip]<br />
|[http://201.49.153.209/pje/programs/navegadorpje.zip navegador.zip]<br />
|}<br />
<br />
'''<font color=red>NOTA:</font>''' O Navegador PJe não reconhece ou suporta outros sistemas operacionais, além do Windows.<br />
<br />
<br><br />
'''Passo 2''': Após a conclusão da transferência, clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Propriedades".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje.jpg|750px]]<br><br><br />
<br />
'''Passo 3''': Na janela que se abre, na aba Geral, no item Segurança, clicar em Desbloquear e logo após em "OK".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje_01.jpg|300px]]<br><br><br />
<br />
'''Passo 4''': Clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Extrair Tudo...". <br />
<br><br> [[Arquivo:Extracao_portalpje.jpg|750px]] <br><br><br />
<br />
'''Passo 5''': Logo após, selecionar um destino para o arquivo e clicar em EXTRAIR.<br />
<br><br> [[Arquivo:Extrair_pasta.jpg]] <br><br><br />
<br />
'''Passo 6''': Depois de finalizada a operação, executar o arquivo '''navegadorpje.exe'''. Na tela do Programa de Instalação clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_1.png|500px]] <br><br><br />
<br />
'''Passo 7''': Marcar a opção '''"Eu aceito os termos do Contrato"''' e clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_2.png|500px]] <br><br> <br />
<br />
'''Passo 8''': Na tela seguinte, caso prefira o ícone para acesso ao aplicativo marque a opção "Criar um ícone na Área de Trabalho", clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar portalpje 2.1.png|500px]] <br><br> <br />
<br />
OBSERVAÇÃO: Se esta opção não estiver marcada, após a instalação será necessário acessar o Navegador PJe através do Menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
<br><br />
<br><br />
'''Passo 9''': Clicar em INSTALAR e aguardar a conclusão da instalação. Caso deseje que o programa seja inicializado ao final da instalação marcar a opção "Executar Naveghador PJe" e clicar em CONCLUIR.<br />
<br><br> [[Arquivo:Instalar_portalpje_6.jpg]] <br><br><br />
<br />
== Utilizando o Navegador PJe ==<br />
<br />
'''Passo 1:''' É possivel executar o Navegador PJe através do atalho disponível na área de trabalho [[Arquivo:012.png|50px]] ou através do menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
[[Arquivo:011.png]]<br />
<br />
<br />
Ao iniciar o Navegador PJe, ele exibe como página inicial a tela para escolher o Estado e o Tribunal que se deseja acessar.<br />
<br />
<br />
[[Arquivo:008.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Após selecionar o Estado e o Tribunal escolhido, clicar no botão "Ir ao site", que abrirá a tela do PJe escolhido.<br />
<br />
<br />
[[Arquivo:014.png|1000px]]<br />
<br />
<br />
'''Passo 3:''' É possível visitar mais de um sistema PJe ao mesmo tempo, utilizando a navegação por abas. Para abrir uma aba, clicar no botão +, e realizar a seleção do PJe desejado conforme orientado no Passo 2.<br />
<br />
[[Arquivo:013.png|1000px]]<br />
<br />
<br />
'''Passo 4:''' Para acessar o PJe, ir para [[Acesso_ao_PJe|'''Acesso ao PJe''']].<br />
<br />
<br />
== Soluções de problemas ==<br />
<br />
Se ao executar o aplicativo Navegador PJe apresentar as seguintes telas:<br />
<br />
[[Arquivo:Conferindo_versao.png]]<br />
<br />
<br />
[[Arquivo:Error_navegadorpje.png]]<br />
<br />
<br />
'''<font color=red>NOTA:</font>''' Caso esteja em uma rede corporativa e esteja apresentando o erro mencionado acima, em geral nesses casos é porque o proxy de sua rede interna deve estar barrando a comunicação do Navegador PJe com a Internet, que utiliza um serviço de atualização automática. Para esses casos, realizar a configuração abaixo. Entretanto, caso o problema persista, informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
<br />
Para solucionar o imprevisto pode ser realizado dois procedimentos:<br />
<br />
1. Alterar o endereço de atualização do aplicativo:<br />
<br />
'''Passo 1:''' O aplicativo Navegador PJe não deve estar em execução. Abrir o diretório: '''C:\NavegadorPJe\Atualizador\app'''. <br />
<br />
[[Arquivo:Diretorio_app.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Abrir o arquivo "url_versao.txt" e alterar o endereço "ftp://ftp.cnj.jus.br/pje/programs/versao.txt" para '''http://ftp.cnj.jus.br/pje/programs/versao.txt''' e salvar e fechar o arquivo.<br />
<br />
'''Passo 3:''' Abrir novamente o Navegador PJe.<br />
<br />
<br />
2. Executar outro arquivo:<br />
<br />
'''Passo 1:''' Abrir o diretório: C:\NavegadorPJe\FirefoxPortable e executar o arquivo "FirefoxPortable.exe".<br />
<br />
[[Arquivo:Executavel_firefox.png|1000px]]<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: (61) 2326-5353.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Navegador_PJeNavegador PJe2016-11-09T13:03:31Z<p>Marcelo.campos: /* Aplicativo Navegador PJe para instalação */</p>
<hr />
<div>[[Arquivo:Icone navegador pje.png|right|x150px]]<br />
O PJe possui alguns pré-requisitos para utilização do sistema, o que acarreta a necessidade de instalação e configuração local de várias ferramentas no computador do usuário. Com intuito de melhorar a experiência com o sistema PJe e dirimir as eventuais ocorrências na configuração dos computadores pessoais foi elaborado o aplicativo Navegador PJe.<br />
<br />
O Navegador PJe é uma versão customizada do navegador Mozilla Firefox para uso exclusivo do sistema PJe em todos Tribunais onde foi instalado e no próprio Conselho Nacional de Justiça. Devido a questões de segurança, orienta-se a não alterar as configurações do aplicativo.<br />
<br />
O objetivo do aplicativo é disponibilizar uma ferramenta pré-configurada para acesso ao sistema PJe englobando o Mozilla Firefox, o Java e as cadeias de certificados válidas, além de realizar automaticamente as atualizações necessárias proporcionando assim maior segurança para os usuários do sistema.<br />
<br />
== Dedicatória ==<br />
Não teríamos esse navegador sem a ajuda do '''Tribunal de Justica do Rio Grande do Norte'''. Na verdade, todo esse trabalho foi desenvolvido por aquele tribunal.<br />
<br />
== Público Alvo ==<br />
<br />
Todos os usuários que utilizam o sistema PJe nos tribunais, tais como:<br />
* advogados,<br />
* partes,<br />
* servidores,<br />
* magistrados, e<br />
* procuradores.<br />
<br />
== Considerações ==<br />
<br />
* O instalador disponível nessa página contém as versões do Mozilla Firefox e do Java compatíveis com o PJe, além de já estar habilitada a opção de popups do PJe.<br />
* Outras versões do Mozilla ou de outros navegadores instalados no seu equipamento não serão afetados por esta instalação.<br />
* A partir da versão 2, atualizada em 28/06/2016, o Navegador PJe está configurado para Usar as configurações de proxy do sistema operacional.<br />
<br />
<br />
<font color=green>'''IMPORTANTE:'''</font> <br />
<br>Para o funcionamento integral do aplicativo é necessário que o [[Configura%C3%A7%C3%A3o_do_Ambiente#Certificado_Digital| Certificado Digital]] do usuário esteja instalado e funcional, de acordo com as orientações do fornecedor do seu dispositivo (token ou cartão).<br />
<br />
== Aplicativo Navegador PJe para instalação ==<br />
<br />
Para iniciar o download do programa, siga os passos abaixo:<br />
<br />
<br />
'''Passo 1:''' Realize o download do arquivo e aguarde o download terminar. <br />
<br />
{| class="wikitable" border="1"<br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="4" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
! colspan="1" style="width: 180px;" |Servidor 2 <br />
! colspan="1" style="width: 180px;" |Servidor 3 <br />
! colspan="1" style="width: 180px;" |Servidor 4 <br />
|-<br />
| '''Windows'''<br />
|[http://pje.stf.jus.br/pje/programs/navegadorpje.zip navegadorpje.zip]<br />
|[http://ftp.cnj.jus.br/pje/programs/navegadorpje.zip navegadorpje.zip]<br />
|[http://201.49.152.209/pje/programs/navegadorpje.zip navegador.zip]<br />
|[http://201.49.153.209/pje/programs/navegadorpje.zip navegador.zip]<br />
|}<br />
<br />
'''<font color=red>NOTA:</font>''' O Navegador PJe não reconhece ou suporta outros sistemas operacionais, além do Windows.<br />
<br />
<br><br />
'''Passo 2''': Após a conclusão da transferência, clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Propriedades".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje.jpg|750px]]<br><br><br />
<br />
'''Passo 3''': Na janela que se abre, na aba Geral, no item Segurança, clicar em Desbloquear e logo após em "OK".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje_01.jpg|300px]]<br><br><br />
<br />
'''Passo 4''': Clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Extrair Tudo...". <br />
<br><br> [[Arquivo:Extracao_portalpje.jpg|750px]] <br><br><br />
<br />
'''Passo 5''': Logo após, selecionar um destino para o arquivo e clicar em EXTRAIR.<br />
<br><br> [[Arquivo:Extrair_pasta.jpg]] <br><br><br />
<br />
'''Passo 6''': Depois de finalizada a operação, executar o arquivo '''navegadorpje.exe'''. Na tela do Programa de Instalação clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_1.png|500px]] <br><br><br />
<br />
'''Passo 7''': Marcar a opção '''"Eu aceito os termos do Contrato"''' e clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_2.png|500px]] <br><br> <br />
<br />
'''Passo 8''': Na tela seguinte, caso prefira o ícone para acesso ao aplicativo marque a opção "Criar um ícone na Área de Trabalho", clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar portalpje 2.1.png|500px]] <br><br> <br />
<br />
OBSERVAÇÃO: Se esta opção não estiver marcada, após a instalação será necessário acessar o Navegador PJe através do Menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
<br><br />
<br><br />
'''Passo 9''': Clicar em INSTALAR e aguardar a conclusão da instalação. Caso deseje que o programa seja inicializado ao final da instalação marcar a opção "Executar Naveghador PJe" e clicar em CONCLUIR.<br />
<br><br> [[Arquivo:Instalar_portalpje_6.jpg]] <br><br><br />
<br />
== Utilizando o Navegador PJe ==<br />
<br />
'''Passo 1:''' É possivel executar o Navegador PJe através do atalho disponível na área de trabalho [[Arquivo:012.png|50px]] ou através do menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
[[Arquivo:011.png]]<br />
<br />
<br />
Ao iniciar o Navegador PJe, ele exibe como página inicial a tela para escolher o Estado e o Tribunal que se deseja acessar.<br />
<br />
<br />
[[Arquivo:008.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Após selecionar o Estado e o Tribunal escolhido, clicar no botão "Ir ao site", que abrirá a tela do PJe escolhido.<br />
<br />
<br />
[[Arquivo:014.png|1000px]]<br />
<br />
<br />
'''Passo 3:''' É possível visitar mais de um sistema PJe ao mesmo tempo, utilizando a navegação por abas. Para abrir uma aba, clicar no botão +, e realizar a seleção do PJe desejado conforme orientado no Passo 2.<br />
<br />
[[Arquivo:013.png|1000px]]<br />
<br />
<br />
'''Passo 4:''' Para acessar o PJe, ir para [[Acesso_ao_PJe|'''Acesso ao PJe''']].<br />
<br />
<br />
== Soluções de problemas ==<br />
<br />
Se ao executar o aplicativo Navegador PJe apresentar as seguintes telas:<br />
<br />
[[Arquivo:Conferindo_versao.png]]<br />
<br />
<br />
[[Arquivo:Error_navegadorpje.png]]<br />
<br />
<br />
'''<font color=red>NOTA:</font>''' Caso esteja em uma rede corporativa e esteja apresentando o erro mencionado acima, em geral nesses casos é porque o proxy de sua rede interna deve estar barrando a comunicação do Navegador PJe com a Internet, que utiliza um serviço de atualização automática. Para esses casos, realizar a configuração abaixo. Entretanto, caso o problema persista, informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
<br />
Para solucionar o imprevisto pode ser realizado dois procedimentos:<br />
<br />
1. Alterar o endereço de atualização do aplicativo:<br />
<br />
'''Passo 1:''' O aplicativo Navegador PJe não deve estar em execução. Abrir o diretório: '''C:\NavegadorPJe\Atualizador\app'''. <br />
<br />
[[Arquivo:Diretorio_app.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Abrir o arquivo "url_versao.txt" e alterar o endereço "ftp://ftp.cnj.jus.br/pje/programs/versao.txt" para '''http://ftp.cnj.jus.br/pje/programs/versao.txt''' e salvar e fechar o arquivo.<br />
<br />
'''Passo 3:''' Abrir novamente o Navegador PJe.<br />
<br />
<br />
2. Executar outro arquivo:<br />
<br />
'''Passo 1:''' Abrir o diretório: C:\NavegadorPJe\FirefoxPortable e executar o arquivo "FirefoxPortable.exe".<br />
<br />
[[Arquivo:Executavel_firefox.png|1000px]]<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: (61) 2326-5353.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Navegador_PJeNavegador PJe2016-11-09T13:03:13Z<p>Marcelo.campos: /* Aplicativo Navegador PJe para instalação */</p>
<hr />
<div>[[Arquivo:Icone navegador pje.png|right|x150px]]<br />
O PJe possui alguns pré-requisitos para utilização do sistema, o que acarreta a necessidade de instalação e configuração local de várias ferramentas no computador do usuário. Com intuito de melhorar a experiência com o sistema PJe e dirimir as eventuais ocorrências na configuração dos computadores pessoais foi elaborado o aplicativo Navegador PJe.<br />
<br />
O Navegador PJe é uma versão customizada do navegador Mozilla Firefox para uso exclusivo do sistema PJe em todos Tribunais onde foi instalado e no próprio Conselho Nacional de Justiça. Devido a questões de segurança, orienta-se a não alterar as configurações do aplicativo.<br />
<br />
O objetivo do aplicativo é disponibilizar uma ferramenta pré-configurada para acesso ao sistema PJe englobando o Mozilla Firefox, o Java e as cadeias de certificados válidas, além de realizar automaticamente as atualizações necessárias proporcionando assim maior segurança para os usuários do sistema.<br />
<br />
== Dedicatória ==<br />
Não teríamos esse navegador sem a ajuda do '''Tribunal de Justica do Rio Grande do Norte'''. Na verdade, todo esse trabalho foi desenvolvido por aquele tribunal.<br />
<br />
== Público Alvo ==<br />
<br />
Todos os usuários que utilizam o sistema PJe nos tribunais, tais como:<br />
* advogados,<br />
* partes,<br />
* servidores,<br />
* magistrados, e<br />
* procuradores.<br />
<br />
== Considerações ==<br />
<br />
* O instalador disponível nessa página contém as versões do Mozilla Firefox e do Java compatíveis com o PJe, além de já estar habilitada a opção de popups do PJe.<br />
* Outras versões do Mozilla ou de outros navegadores instalados no seu equipamento não serão afetados por esta instalação.<br />
* A partir da versão 2, atualizada em 28/06/2016, o Navegador PJe está configurado para Usar as configurações de proxy do sistema operacional.<br />
<br />
<br />
<font color=green>'''IMPORTANTE:'''</font> <br />
<br>Para o funcionamento integral do aplicativo é necessário que o [[Configura%C3%A7%C3%A3o_do_Ambiente#Certificado_Digital| Certificado Digital]] do usuário esteja instalado e funcional, de acordo com as orientações do fornecedor do seu dispositivo (token ou cartão).<br />
<br />
== Aplicativo Navegador PJe para instalação ==<br />
<br />
Para iniciar o download do programa, siga os passos abaixo:<br />
<br />
<br />
'''Passo 1:''' Realize o download do arquivo e aguarde o download terminar. <br />
<br />
{| class="wikitable" border="1"<br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
! colspan="1" style="width: 180px;" |Servidor 2 <br />
! colspan="1" style="width: 180px;" |Servidor 3 <br />
! colspan="1" style="width: 180px;" |Servidor 4 <br />
|-<br />
| '''Windows'''<br />
|[http://pje.stf.jus.br/pje/programs/navegadorpje.zip navegadorpje.zip]<br />
|[http://ftp.cnj.jus.br/pje/programs/navegadorpje.zip navegadorpje.zip]<br />
|[http://201.49.152.209/pje/programs/navegadorpje.zip navegador.zip]<br />
|[http://201.49.153.209/pje/programs/navegadorpje.zip navegador.zip]<br />
|}<br />
<br />
'''<font color=red>NOTA:</font>''' O Navegador PJe não reconhece ou suporta outros sistemas operacionais, além do Windows.<br />
<br />
<br><br />
'''Passo 2''': Após a conclusão da transferência, clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Propriedades".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje.jpg|750px]]<br><br><br />
<br />
'''Passo 3''': Na janela que se abre, na aba Geral, no item Segurança, clicar em Desbloquear e logo após em "OK".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje_01.jpg|300px]]<br><br><br />
<br />
'''Passo 4''': Clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Extrair Tudo...". <br />
<br><br> [[Arquivo:Extracao_portalpje.jpg|750px]] <br><br><br />
<br />
'''Passo 5''': Logo após, selecionar um destino para o arquivo e clicar em EXTRAIR.<br />
<br><br> [[Arquivo:Extrair_pasta.jpg]] <br><br><br />
<br />
'''Passo 6''': Depois de finalizada a operação, executar o arquivo '''navegadorpje.exe'''. Na tela do Programa de Instalação clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_1.png|500px]] <br><br><br />
<br />
'''Passo 7''': Marcar a opção '''"Eu aceito os termos do Contrato"''' e clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_2.png|500px]] <br><br> <br />
<br />
'''Passo 8''': Na tela seguinte, caso prefira o ícone para acesso ao aplicativo marque a opção "Criar um ícone na Área de Trabalho", clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar portalpje 2.1.png|500px]] <br><br> <br />
<br />
OBSERVAÇÃO: Se esta opção não estiver marcada, após a instalação será necessário acessar o Navegador PJe através do Menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
<br><br />
<br><br />
'''Passo 9''': Clicar em INSTALAR e aguardar a conclusão da instalação. Caso deseje que o programa seja inicializado ao final da instalação marcar a opção "Executar Naveghador PJe" e clicar em CONCLUIR.<br />
<br><br> [[Arquivo:Instalar_portalpje_6.jpg]] <br><br><br />
<br />
== Utilizando o Navegador PJe ==<br />
<br />
'''Passo 1:''' É possivel executar o Navegador PJe através do atalho disponível na área de trabalho [[Arquivo:012.png|50px]] ou através do menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
[[Arquivo:011.png]]<br />
<br />
<br />
Ao iniciar o Navegador PJe, ele exibe como página inicial a tela para escolher o Estado e o Tribunal que se deseja acessar.<br />
<br />
<br />
[[Arquivo:008.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Após selecionar o Estado e o Tribunal escolhido, clicar no botão "Ir ao site", que abrirá a tela do PJe escolhido.<br />
<br />
<br />
[[Arquivo:014.png|1000px]]<br />
<br />
<br />
'''Passo 3:''' É possível visitar mais de um sistema PJe ao mesmo tempo, utilizando a navegação por abas. Para abrir uma aba, clicar no botão +, e realizar a seleção do PJe desejado conforme orientado no Passo 2.<br />
<br />
[[Arquivo:013.png|1000px]]<br />
<br />
<br />
'''Passo 4:''' Para acessar o PJe, ir para [[Acesso_ao_PJe|'''Acesso ao PJe''']].<br />
<br />
<br />
== Soluções de problemas ==<br />
<br />
Se ao executar o aplicativo Navegador PJe apresentar as seguintes telas:<br />
<br />
[[Arquivo:Conferindo_versao.png]]<br />
<br />
<br />
[[Arquivo:Error_navegadorpje.png]]<br />
<br />
<br />
'''<font color=red>NOTA:</font>''' Caso esteja em uma rede corporativa e esteja apresentando o erro mencionado acima, em geral nesses casos é porque o proxy de sua rede interna deve estar barrando a comunicação do Navegador PJe com a Internet, que utiliza um serviço de atualização automática. Para esses casos, realizar a configuração abaixo. Entretanto, caso o problema persista, informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
<br />
Para solucionar o imprevisto pode ser realizado dois procedimentos:<br />
<br />
1. Alterar o endereço de atualização do aplicativo:<br />
<br />
'''Passo 1:''' O aplicativo Navegador PJe não deve estar em execução. Abrir o diretório: '''C:\NavegadorPJe\Atualizador\app'''. <br />
<br />
[[Arquivo:Diretorio_app.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Abrir o arquivo "url_versao.txt" e alterar o endereço "ftp://ftp.cnj.jus.br/pje/programs/versao.txt" para '''http://ftp.cnj.jus.br/pje/programs/versao.txt''' e salvar e fechar o arquivo.<br />
<br />
'''Passo 3:''' Abrir novamente o Navegador PJe.<br />
<br />
<br />
2. Executar outro arquivo:<br />
<br />
'''Passo 1:''' Abrir o diretório: C:\NavegadorPJe\FirefoxPortable e executar o arquivo "FirefoxPortable.exe".<br />
<br />
[[Arquivo:Executavel_firefox.png|1000px]]<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: (61) 2326-5353.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/Navegador_PJeNavegador PJe2016-11-07T17:40:20Z<p>Marcelo.campos: /* Aplicativo Navegador PJe para instalação */</p>
<hr />
<div>[[Arquivo:Icone navegador pje.png|right|x150px]]<br />
O PJe possui alguns pré-requisitos para utilização do sistema, o que acarreta a necessidade de instalação e configuração local de várias ferramentas no computador do usuário. Com intuito de melhorar a experiência com o sistema PJe e dirimir as eventuais ocorrências na configuração dos computadores pessoais foi elaborado o aplicativo Navegador PJe.<br />
<br />
O Navegador PJe é uma versão customizada do navegador Mozilla Firefox para uso exclusivo do sistema PJe em todos Tribunais onde foi instalado e no próprio Conselho Nacional de Justiça. Devido a questões de segurança, orienta-se a não alterar as configurações do aplicativo.<br />
<br />
O objetivo do aplicativo é disponibilizar uma ferramenta pré-configurada para acesso ao sistema PJe englobando o Mozilla Firefox, o Java e as cadeias de certificados válidas, além de realizar automaticamente as atualizações necessárias proporcionando assim maior segurança para os usuários do sistema.<br />
<br />
== Dedicatória ==<br />
Não teríamos esse navegador sem a ajuda do '''Tribunal de Justica do Rio Grande do Norte'''. Na verdade, todo esse trabalho foi desenvolvido por aquele tribunal.<br />
<br />
== Público Alvo ==<br />
<br />
Todos os usuários que utilizam o sistema PJe nos tribunais, tais como:<br />
* advogados,<br />
* partes,<br />
* servidores,<br />
* magistrados, e<br />
* procuradores.<br />
<br />
== Considerações ==<br />
<br />
* O instalador disponível nessa página contém as versões do Mozilla Firefox e do Java compatíveis com o PJe, além de já estar habilitada a opção de popups do PJe.<br />
* Outras versões do Mozilla ou de outros navegadores instalados no seu equipamento não serão afetados por esta instalação.<br />
* A partir da versão 2, atualizada em 28/06/2016, o Navegador PJe está configurado para Usar as configurações de proxy do sistema operacional.<br />
<br />
<br />
<font color=green>'''IMPORTANTE:'''</font> <br />
<br>Para o funcionamento integral do aplicativo é necessário que o [[Configura%C3%A7%C3%A3o_do_Ambiente#Certificado_Digital| Certificado Digital]] do usuário esteja instalado e funcional, de acordo com as orientações do fornecedor do seu dispositivo (token ou cartão).<br />
<br />
== Aplicativo Navegador PJe para instalação ==<br />
<br />
Para iniciar o download do programa, siga os passos abaixo:<br />
<br />
<br />
'''Passo 1:''' Realize o download do arquivo e aguarde o download terminar. <br />
<br />
{| class="wikitable" border="1"<br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
! colspan="1" style="width: 180px;" |Servidor 2 <br />
! colspan="1" style="width: 180px;" |Servidor 3 <br />
|-<br />
| '''Windows'''<br />
|[http://pje.stf.jus.br/pje/programs/navegadorpje.zip navegadorpje.zip]<br />
|[http://201.49.152.88/pje/programs/navegadorpje.zip navegador.zip]<br />
|[http://ftp.cnj.jus.br/pje/programs/navegadorpje.zip navegadorpje.zip]<br />
|}<br />
<br />
'''<font color=red>NOTA:</font>''' O Navegador PJe não reconhece ou suporta outros sistemas operacionais, além do Windows.<br />
<br />
<br><br />
'''Passo 2''': Após a conclusão da transferência, clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Propriedades".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje.jpg|750px]]<br><br><br />
<br />
'''Passo 3''': Na janela que se abre, na aba Geral, no item Segurança, clicar em Desbloquear e logo após em "OK".<br />
<br><br>[[Arquivo:Desbloquear_navegadorpje_01.jpg|300px]]<br><br><br />
<br />
'''Passo 4''': Clicar com o botão direito do mouse no arquivo '''navegadorpje.zip''' e selecionar "Extrair Tudo...". <br />
<br><br> [[Arquivo:Extracao_portalpje.jpg|750px]] <br><br><br />
<br />
'''Passo 5''': Logo após, selecionar um destino para o arquivo e clicar em EXTRAIR.<br />
<br><br> [[Arquivo:Extrair_pasta.jpg]] <br><br><br />
<br />
'''Passo 6''': Depois de finalizada a operação, executar o arquivo '''navegadorpje.exe'''. Na tela do Programa de Instalação clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_1.png|500px]] <br><br><br />
<br />
'''Passo 7''': Marcar a opção '''"Eu aceito os termos do Contrato"''' e clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar_portalpje_2.png|500px]] <br><br> <br />
<br />
'''Passo 8''': Na tela seguinte, caso prefira o ícone para acesso ao aplicativo marque a opção "Criar um ícone na Área de Trabalho", clicar em AVANÇAR.<br />
<br><br> [[Arquivo:Instalar portalpje 2.1.png|500px]] <br><br> <br />
<br />
OBSERVAÇÃO: Se esta opção não estiver marcada, após a instalação será necessário acessar o Navegador PJe através do Menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
<br><br />
<br><br />
'''Passo 9''': Clicar em INSTALAR e aguardar a conclusão da instalação. Caso deseje que o programa seja inicializado ao final da instalação marcar a opção "Executar Naveghador PJe" e clicar em CONCLUIR.<br />
<br><br> [[Arquivo:Instalar_portalpje_6.jpg]] <br><br><br />
<br />
== Utilizando o Navegador PJe ==<br />
<br />
'''Passo 1:''' É possivel executar o Navegador PJe através do atalho disponível na área de trabalho [[Arquivo:012.png|50px]] ou através do menu Iniciar > Todos os Programas > Navegador PJe > Navegador PJe.<br />
[[Arquivo:011.png]]<br />
<br />
<br />
Ao iniciar o Navegador PJe, ele exibe como página inicial a tela para escolher o Estado e o Tribunal que se deseja acessar.<br />
<br />
<br />
[[Arquivo:008.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Após selecionar o Estado e o Tribunal escolhido, clicar no botão "Ir ao site", que abrirá a tela do PJe escolhido.<br />
<br />
<br />
[[Arquivo:014.png|1000px]]<br />
<br />
<br />
'''Passo 3:''' É possível visitar mais de um sistema PJe ao mesmo tempo, utilizando a navegação por abas. Para abrir uma aba, clicar no botão +, e realizar a seleção do PJe desejado conforme orientado no Passo 2.<br />
<br />
[[Arquivo:013.png|1000px]]<br />
<br />
<br />
'''Passo 4:''' Para acessar o PJe, ir para [[Acesso_ao_PJe|'''Acesso ao PJe''']].<br />
<br />
<br />
== Soluções de problemas ==<br />
<br />
Se ao executar o aplicativo Navegador PJe apresentar as seguintes telas:<br />
<br />
[[Arquivo:Conferindo_versao.png]]<br />
<br />
<br />
[[Arquivo:Error_navegadorpje.png]]<br />
<br />
<br />
'''<font color=red>NOTA:</font>''' Caso esteja em uma rede corporativa e esteja apresentando o erro mencionado acima, em geral nesses casos é porque o proxy de sua rede interna deve estar barrando a comunicação do Navegador PJe com a Internet, que utiliza um serviço de atualização automática. Para esses casos, realizar a configuração abaixo. Entretanto, caso o problema persista, informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
<br />
Para solucionar o imprevisto pode ser realizado dois procedimentos:<br />
<br />
1. Alterar o endereço de atualização do aplicativo:<br />
<br />
'''Passo 1:''' O aplicativo Navegador PJe não deve estar em execução. Abrir o diretório: '''C:\NavegadorPJe\Atualizador\app'''. <br />
<br />
[[Arquivo:Diretorio_app.png|1000px]]<br />
<br />
<br />
'''Passo 2:''' Abrir o arquivo "url_versao.txt" e alterar o endereço "ftp://ftp.cnj.jus.br/pje/programs/versao.txt" para '''http://ftp.cnj.jus.br/pje/programs/versao.txt''' e salvar e fechar o arquivo.<br />
<br />
'''Passo 3:''' Abrir novamente o Navegador PJe.<br />
<br />
<br />
2. Executar outro arquivo:<br />
<br />
'''Passo 1:''' Abrir o diretório: C:\NavegadorPJe\FirefoxPortable e executar o arquivo "FirefoxPortable.exe".<br />
<br />
[[Arquivo:Executavel_firefox.png|1000px]]<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: (61) 2326-5353.</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2016-11-07T17:39:01Z<p>Marcelo.campos: /* Aplicativo PJeOffice para instalação */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://pje.stf.jus.br/pje/programs/pje-office/pje-office-latest_win.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://pje.stf.jus.br/pje/programs/pje-office/pje-office-latest_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://pje.stf.jus.br/pje-office-latest_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://pje.stf.jus.br/pje-office/pje-office-latest_amd64.deb pje-office_amd64.deb]<br />
|}<br />
<br />
== Aplicativos para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração modo simples (somente windows) ==<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
== Configuração modo avançado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
== Configurando solicitação de senha do certificado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.camposhttps://www.pje.jus.br/wiki/index.php/PJeOfficePJeOffice2016-11-07T17:37:00Z<p>Marcelo.campos: /* Aplicativo PJeOffice para instalação */</p>
<hr />
<div>O PJeOffice é um software disponibilizado pelo CNJ para assinatura eletrônica de documentos para o sistema PJe. O objetivo do aplicativo é garantir a validade jurídica dos documentos e processos, além de substituir a necessidade do plugin Oracle Java Runtime Environment no navegador de internet e gerar maior praticidade na utilização do sistema.<br />
<br />
== Aplicativo PJeOffice para instalação ==<br />
<br />
Selecione o arquivo para download do seu sistema operacional.<br />
<br />
{| class="wikitable" border="1" <br />
! rowspan="2" style="width: 150px;" |Sistema Operacional<br />
! colspan="3" |Download<br />
|-<br />
! colspan="1" style="width: 180px;" |Servidor 1 <br />
|-<br />
| '''Windows''' <br />
|[http://pje.stf.jus.br/pje/programs/pje-office/pje/programs/pje-office/pje-office-latest_win.exe pje-office.exe]<br />
|-<br />
|'''MacOS 64 Bits'''<br />
|[http://pje.stf.jus.br/pje/programs/pje-office/pje/programs/pje-office/pje-office-latest_x64.dmg pje-office_x64.dmg]<br />
|-<br />
|'''Debian 32 bits'''<br />
|[http://pje.stf.jus.br/pje/programs/pje-office/pje-office/pje-office-latest_i386.deb pje-office_i386.deb]<br />
|-<br />
|'''Debian 64 bits'''<br />
|[http://pje.stf.jus.br/pje/programs/pje-office/programs/pje-office/pje-office-latest_amd64.deb pje-office_amd64.deb]<br />
|}<br />
<br />
== Aplicativos para download PJeOffice ==<br />
<br />
Para iniciar o Download do programa, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique no arquivo de download acima conforme seu sistema operacional.<br />
<br />
'''Passo 2''': Aguarde o download terminar.<br />
<br><br>[[Arquivo:Download_barra.jpg|220px]] <br><br><br />
<br />
'''Passo 3''': Após a conclusão da transferência clicar no arquivo baixado, e extraia o instalador do arquivo zipado, clicando com o botão direito do mouse em cima do nome do arquivo e depois clicando em "Extrair Tudo...".<br />
<br><br><br />
[[Arquivo:Download2.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download3.png|500px]] <br><br><br />
'''Passo 4''': Depois de finalizada a operação clique duas vezes no instalador.<br />
<br><br>[[Arquivo:Download4.png|500px]] <br><br><br />
<br />
'''Passo 5''': Agora simplesmente clique em avançar até finalizar a instalação do aplicativo.<br />
<br><br>[[Arquivo:Download6.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download7.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download8.png|500px]] <br><br><br />
<br><br>[[Arquivo:Download9.png|500px]] <br><br><br />
<br />
'''Passo 6''': Caso deseje que o programa seja inicializado marque a caixa "Executar PJeOffice".<br />
<br><br>[[Arquivo:Download10.png|500px]] <br><br><br />
<br />
== Configuração modo simples (somente windows) ==<br />
<br />
'''Passo 1''': Entre no PJe normalmente, na tela de autenticação clique no botão "Acessar com certificado digital"<br />
<br><br>[[Arquivo:Download11.png|500px]] <br><br><br />
<br />
'''Passo 2''': Como o aplicativo será utilizado pela primeira vez o próprio irá exibir uma janela pergutando qual certificado utilizar, entretanto esta janela somente irá aparecer para sistemas operacionais Windows e quando existir algum certificado na MsCAPI, caso contrário será exibida a tela de Configuração Avançada.<br />
<br><br>[[Arquivo:Download12.png|500px]] <br><br><br />
<br />
'''Passo 3''': Selecione o certificado desejado e depois clique em "Concluir".<br />
<br><br>[[Arquivo:Download13.png|500px]] <br><br><br />
<br />
== Configuração modo avançado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, clique no botão "Carregar providers disponíveis"<br />
<br><br>[[Arquivo:Download16.png|500px]] <br><br><br />
<br />
'''Passo 4''': Após o processamento o aplicativo irá exibir uma lista de providers disponíveis para utilização, selecione dentre as opções o certificado que deseja utilizar e clique em "OK"<br />
<br><br>[[Arquivo:Download17.png|500px]] <br><br><br />
<br />
'''Passo 5''': Caso não apareca nenhum provider disponível para o seu sistema operacional clique na aba PKCS11.<br />
<br><br>[[Arquivo:Download18.png|500px]] <br><br><br />
<br />
== Configurando solicitação de senha do certificado ==<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Configuração de Certificado" <br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, na aba "Preferências", possibilitando assim definir em quais momentos que deseja inserir a senha do PIN no certificado. Na aba "Preferências" apresenta um combo com as seguintes opções: <br />
<br />
* Apenas no primeiro acesso: a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente. <br />
* Apenas no primeiro acesso(com confirmação): a senha do PIN será solicitada apenas no momento que logar no sistema, e demais assinaturas internas, não será necessário informar a senha novamente, após prosseguir dentro do sistema com protocolo de processos ou assinaturas em documentos será apresentado uma mensagem de confirmação.<br />
* Sempre: a senha do PIN sempre será solicitada.<br />
<br>[[Arquivo:Download303.png|500px]] <br><br><br />
<br />
'''Passo 4''': Selecione o modo desejado e clique no botão "Concluir"<br />
<br />
== Assinando arquivos fora do sistema em modo (OFFLINE) ==<br />
<br />
No PJeOffice é possível assinar arquivos em modo offline, salvando suas versões assinadas em pastas localmente para, posteriormente, inserir um a um no processo sem precisar assiná-los novamente. <br />
<br />
Para realizar a assinatura offline, siga os passos abaixo:<br />
<br />
'''Passo 1''': Clique com o botão direito do mouse no ícone do PJeOffice localizado no SystemTray (Fica no canto inferior direito ao lado do Relógio, conforme a imagem abaixo).<br />
<br><br>[[Arquivo:Download14.png|300px]] <br><br><br />
<br />
'''Passo 2''': Clique no item de menu "Assinador off-line"<br />
<br><br>[[Arquivo:Download15.png|300px]] <br><br><br />
<br />
'''Passo 3''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado um ou mais arquivos para a assinatura offline. Caso o arquivo desejado não esteja na pasta apresentada, o mesmo poderá ser localizado nas demais pastas da estação de trabalho. <br />
<br />
Selecione os arquivos que deseja assinar e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download300.png|500px]] <br><br><br />
<br />
'''Passo 4''': O aplicativo irá exibir a janela abaixo, permitindo assim que seja selecionado o local de destino dos arquivos assinados em modo offline. <br />
<br />
Selecione o local de destino e clique no botão "Abrir"<br />
<br><br>[[Arquivo:Download301.png|500px]] <br><br><br />
<br />
'''Passo 5''': Será solicitado o PIN de acesso ao certificado, para assinatura dos documentos selecionados. Insira os dados e clique no botão OK.<br />
<br />
<br><br>[[Arquivo:Download302.png|500px]] <br><br><br />
<br />
Após a confirmação dos dados os arquivos serão assinados e gravados com sucesso, no local de destino selecionado no passo anterior.<br />
<br />
== Observações ==<br />
<br />
Pode ser que alguma configuração adicional na infraestrutura de sua rede local esteja impedindo o acesso. Por exemplo, ao tentar assinar um documento, o PJe apresenta um erro de protocolo. Para esses casos, no geral, o proxy de sua rede interna deve estar barrando a comunicação do assinador do PJe com a Internet. Informe sobre esse problema ao setor de infraestrutura para que eles alterem a configuração.<br />
<br />
== Suporte ==<br />
<br />
Em caso de dúvidas ou para mais informações, entre em contato com a nossa Central de Atendimento ao Usuário: <br />
<br>&#9742; (61) 2326-5353<br />
<br><font size=3>&#9993;</font> pje.suporte@cnj.jus.br</div>Marcelo.campos