Mostrando postagens com marcador Container WEB. Mostrar todas as postagens
Mostrando postagens com marcador Container WEB. Mostrar todas as postagens

segunda-feira, 18 de dezembro de 2023

Aumentando o limite do tamanho de upload de arquivos do JBoss EAP

 

Nesse artigo vou mostrar como permitir requisições de grande tamanho para o JBoss EAP. Por padrão ele barra requisições maiores que 10Mb, o que para os dias atuais não é muita coisa, já que qualquer imagem ou PDF facilmente passa esse tamanho.

 

No JBoss EAP, a partir da versão 7 foi incluído um novo servidor web extremamente leve e de alto desempenho da própria RedHat chamado Undertown, substituindo o Tomcat que rodava internamente no JBoss. No standalone.xml encontramos seu submódulo como abaixo:

 

<subsystem xmlns="urn:jboss:domain:undertow:4.0">

<buffer-cache name="default"/>

     <server name="default-server">

<http-listener name="default" socket-binding="http" enable-http2="false"/>

<ajp-listener name="ajp" socket-binding="ajp" />

<host name="default-host" alias="localhost">

               <location name="/" handler="welcome-content"/>

               <filter-ref name="server-header"/>

               <filter-ref name="x-powered-by-header"/>

</host>

</server>

     <servlet-container name="default">

          <jsp-config/>

          <websockets/>

     </servlet-container>

     <handlers>

<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>

</handlers>

<filters>

<response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>

          <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>

    </filters>

</subsystem>

 

 

E é nele que precisamos configurar a permissão para grandes arquivos, dentro das tags <http-listener> e <ajp-listener>. Nesse exemplo vou configurar para 1GB, mas você precisa ver de acordo com sua necessidade.

 

<subsystem xmlns="urn:jboss:domain:undertow:4.0">

<buffer-cache name="default"/>

     <server name="default-server">

<http-listener name="default" socket-binding="http" max-post-size="1073741824" enable-http2="false"/>

<ajp-listener name="ajp" socket-binding="ajp" max-post-size="1073741824" />

<host name="default-host" alias="localhost">

               <location name="/" handler="welcome-content"/>

               <filter-ref name="server-header"/>

               <filter-ref name="x-powered-by-header"/>

</host>

</server>

     <servlet-container name="default">

          <jsp-config/>

          <websockets/>

     </servlet-container>

     <handlers>

<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>

</handlers>

<filters>

<response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>

          <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>

    </filters>

</subsystem>

 

 

Com isso o JBoss agora passa a permitir um grande tráfego de dados, mas ainda é possível configurar outros controles como no Spring por exemplo.

domingo, 13 de março de 2016

Configurando o Wildfly para aceitar uma conexão com o PostgreSQL

        Pessoal, quem é acostumado a usar o Wildfly com PostgreSQL sabe que temos que colocar dentro do Wildfly uma cópia do driver .jar do PostgreSQL e um arquivo chamado module.xml. O local aonde colocamos este arquivo varia de acordo com versões do Wildfly, principalmente entre versões do JBoss, que é a versão mais antiga do Container e a versão atual. O Openshift até tenta fazer isso de forma automática quando criamos a aplicação no servidor e selecionamos Wildfly e o PostgreSQL, mas justamente por causa dessa variação que ocorre nas versões, ele acaba colocando os arquivos no local errado e não funciona.

         Tenha em mãos o .jar do PostgreSQL na versão correta e o arquivo module.xml, coloque ambos em uma pasta no seu computador, no meu caso como eu tenho um servidor configurado na máquina local eu irei pegar de lá.

         O driver do banco vem quando se instala o PostgreSQL na máquina e fica em uma pasta chamada pgJDBC, mas pode ser baixado do site do Postgre também separadamente. Para quem não tem o arquivo module.xml basta criar um com o conteúdo abaixo:

<?xml version="1.0" encoding="UTF-8"?>

<module xmlns="urn:jboss:domain:datasources:2.0" name="org.postgresql">

  <resources>
         <resource-root path="postgresql-9.2-1002.jdbc4.jar"/>
  </resources>

  <dependencies>
          <module name="javax.api"/>
          <module name="javax.transaction.api"/>
   </dependencies>

</module>

Vamos copiar os arquivos, lembre-se de estar com o WinSCP aberto e conectado com o servidor como mostrado no post anterior. O que aparece do lado esquerdo é a sua máquina local, e do lado direito é o servidor na nuvem. O que está marcado de vermelho é para auxiliar a navegar na sua máquina, onde você pode escolher o diretório para navegar. o mesmo acontece no lado servidor. 


Do lado esquerdo navegue até a pasta onde está os .jar e o module.xml. Do lado direito que é o lado do servidor entre no seguinte caminho:

Wildfly/modules/system/layers/base/org

Você verá várias pastas, crie uma pasta chamada postgresql e dentro crie uma pasta chamada main onde irão ficar o .jar e o arquivo module.xml. No lado esquerdo selecione os 2 arquivos e clique com o botão direito escolhendo a opção upload. 


Pronto! O Wildfly irá conseguir se conectar com o Postgresql quando criarmos a conexão com o banco no momento do deploy. agora vamos para o próximo passo que é conectar o PostgreSQL como se fosse local através do pgAdmin III para criarmos o banco.