Conhecendo o Payara Micro.

Daniel Dias
Daniel Dias
Published in
5 min readJun 3, 2018
20150906224045
Logo Payara

Neste post vamos conhecer um pouco sobre o Payara Micro para desenvolver aplicações modernas com Java EE / Jakarta EE .

Introdução ao Payara Micro

Payara Micro é uma plataforma de middleware de código aberto criada a partir do lançamento do Payara Embedded Web para implementações de microsserviços Java EE (Jakarta EE) em container.

Com menos de 70 MB de tamanho, a Payara Micro não requer instalação ou configuração e não precisa de regravação de código — para que você possa criar e implantar um aplicativo totalmente funcional em poucos minutos.

Compatível com o Eclipse MicroProfile, o Payara Micro é uma versão pronta para microservices do Payara Server. Você pode executar arquivos war a partir da linha de comandos sem qualquer instalação do servidor de aplicativos. O cluster automático e elástico torna a Payara Micro ideal para executar aplicativos Java EE em uma infraestrutura virtualizada moderna.

Além das api do MicroProfile 1.2 :

  • JAX-RS 2.0
  • CDI 2 (updated 1.2 → 2)
  • JSON-P 1.0
  • Annotation 1.2
  • Microprofile Config 1.1
  • Microprofile Fault Tolerance 1.0
  • Microprofile Health 1.0
  • Microprofile Metrics 1.0
  • Microprofile JWT Propagation 1.0

Payara micro tambem suporta as api do Java EE como :

  • Servlets, JSTL, EL and JSPs
  • WebSockets
  • JSF
  • JAX-RS
  • EJB lite
  • JTA
  • JPA
  • Bean Validation
  • CDI
  • Interceptors
  • JBatch
  • Concurrency
  • JCache
  • JCA
  • e muito mais.

Bem feita essa rápida introdução sobre o Payara Micro, vamos para a parte legal, a prática .

Requisitos

Para podemos utilizar a versao mais recente do Payara Micro, precisamos atualizar o nosso JDK para a versão 8u162 ou maior, devido a uma restrição na versão mais recente do Grizzly .

Feita essa atulização,podemos fazer o download o Payara micro aqui ou podemos fazer o uso de uma imagem docker .

Criando uma instancia

Para criar uma instancia do Payara Micro basta passar o seguinte comando :

java -jar payara-micro-5.181.jar

com esse único comando você tem um micro servidor rodando conforme a imagem :

START

Deploy das Aplicações

Para realizamos o deploy das nossas aplicações Java EE/Jakarta EE tambem é muito simples conforme o comando abaixo :

 java -jar payara-micro-5.181.jar — deploy caminhoDoMeuWAR

aqui o comando “ — deploy” é opcional, desde a versão 4.1.2.181 e 5.181.

vejamos um exemplo de deploy de um app em Servlet :

java -jar payara-micro-5.181.jar demoServlet.war
run

após executar o comando, o micro servidor ira fazer o deploy do nosso demoServlet.war e no final ira exibir a url para acessar o recurso, que no caso seria , agora abra o url no browser e adicione ao final da url o caminho para chamar o servlet: “http://192.168.1.6/demoServlet/HelloPayaraMicro :

run2

Além disso podemos fazer deploy de multiplos war dentro do Payara Micro com o seguinte comando :

java -jar payara-micro-5.181.jar demoServlet.war demoServlet2.war
run3

agora temos duas Servlet rodando no Payara Micro, porem existe uma outra forma de fazer isso de maneira mais rapida, que seria criar um novo diretorio e dentro dele adicionar todos os war e em seguinda utilizar o seguinte comando :

java -jar payara-micro-5.181.jar — deploymentDir /localDasWAR

Gerando Uber Jar

È possivel tambem com o Payara Micro gerar um jar executavel pela linha de comando, desta forma podemos empacotar o aplicativo (ou aplicativos), configuração e dependências em um único jar com o seguinte comando :

java -jar payara-micro-5.181.jar demoServlet.war — outputUberJar demoServlet.jar

e em seguida executar o comando :

java -jar demoServlet.jar

Clustering no Payara Micro

O Payara Micro Cluster é baseado no Hazelcast, similarmente ao clustering da Hazelcast no Payara Server. Cada nó em um cluster da Payara Micro é efetivamente um nó Hazelcast.

Isso facilita a escalabilidade da infraestrutura para nossos aplicativos dinamicamente, sem nenhuma configuração complexa ou tempo de inatividade.

A integração da Hazelcast na Payara Micro permite que as instâncias se agrupem automáticamente e dinamicamente. Quando duas instâncias são apontadas no mesmo endereço e porta multicast, elas serão automaticamente agrupadas.

Vejamos um exemplo de executação de 2 instancias do Payara Micro em porta diferentes :

java -jar payara-micro-5.181.jar demoServlet.war — autoBindHttp

a opçao “ — autoBindHttp” é usado para obter diferente configuração de porta, ou seja, quando executarmo duas vezes o comando acima teremos 2 instancias do Payara Micro com o mesmo endereço IP porem com porta diferentes, algo como 8080,8081… .

após a execução em um dos terminal vai esta conforme a imagem abaixo :

das

pronto temos nossas aplicações em modo cluster, em nosso caso, ele se juntou ao Domain Data Grid que é o novo modo de descoberta para o Payara Micro e Payara Server, você pode aprender um pouco mais sobre o mesmo nesse artigo .

Payara Micro Maven Plugin

Para finalizar, iremos ver como podemos executar e gerar um Uber Jar com o plugin do Maven .

Crie um novo projeto com o seguinte conteúdo no pom.xml:

para mais detalhes sobre o que cada tag representa, acessa o link da documentação.

Para executar faça o seguinte :

mvn clean package payara-micro:bundle && mvn payara-micro:start

feito isso sua aplicação estará em execução escutando a porta 8080 que é a padrão.

Bem isso é tudo, espero que os leitores tenham gostado de conhecer um pouco sobre Payara Micro como alternativa light a servidores de aplicação full como Payara Server/GlassFish ,etc .

código de exemplo no meu github .

voce pode aprender mais nos seguintes links :

REFERÊNCIAS

--

--

Daniel Dias
Daniel Dias

SouJava Board Member, JCP Member, JSR-371 (MVC 1.0), JSR-382 (Config) specifications contributor, EG JSR-385 (UoM) and Eclipse Committer .