3 dicas JBoss

5 respostas
R

Mapeamento do diretório das aplicações fora do /deploy.

Para que você crie suas aplicações de uma maneira mais organizada, você poderá mapear um diretório qualquer para que o JBoss faça o deploy.

Ex: Para mapear o seguinte diretório com algumas aplicações basta.

c:\
 |--aplicacoes
 |    |
 |    |---aplicacao1
 |    |     |----*.ear
 |    |
 |    |---aplicacao2
 |    |     |----*.war
 |    |
 |    |---aplicacao3
 |          |----*.sar
 |
 |--jboss-xxxxx

Editar o arquivo c:\jboss-xxxx\server\xxxxxx\conf\jboss-service.xml e acrescentar o endereço desejado. Neste mesmo arquivo existem alguns exemplos comentados de possíveis formas de deploy.

....
  <attribute name="ScanPeriod">3000</attribute>
       ….
      <attribute name="URLs">deploy/,file:/c:/aplicacoes/</attribute>

      <attribute name="RecursiveSearch">True</attribute>

   </mbean>

</server>

“ScanPeriod” --> Intervalo de tempo em milisegundos entre as varreduras por atualizações das aplicações pelo Jboss.

“RecursiveSearch” --> Habilita ou não a varredura dos subdiretórios existentes nos diretórios de deploy, no nosso caso c:\jboss-xxxx\server\xxxxxx\deploy e c:/aplicacoes

Mudar a porta padrão de 8080 para 80.

Editar o arquivo server.xml localizado em c:\jboss-xxxx\server\xxxxxx\deploy\jbossweb-tomcat50.sar\ server.xml e alterar a seguinte linha:

<conector port=8080 address ....

para

<conector port=80 address ...

Habilitar a solicitação de senha pelo JBoss ao acessar a área do web-console ou jmx-console

Para forçar o jboss a solicitar uma senha válida ao tentar acessar os consoles de administração basta alterar os seguintes arquivos:

web-console: c:\jboss.xxxx\server\xxxxx\deploy\jmx-console.war\WEB-INF

jboss-web.xml

<jboss-web>
   <!-- Uncomment the security-domain to enable security. You will
      need to edit the htmladaptor login configuration to setup the
      login modules used to authentication users.
      <security-domain>java:/jaas/jmx-console</security-domain>
   -->
</jboss-web>

Retirar o comentário da linha java:/jaas/jmx-console

<jboss-web>
   <!-- Uncomment the security-domain to enable security. You will
      need to edit the htmladaptor login configuration to setup the
      login modules used to authentication users.
   -->

      <security-domain>java:/jaas/jmx-console</security-domain>
</jboss-web>

web.xml

<!-- A security constraint that restricts access to the HTML JMX console
   to users with the role JBossAdmin. Edit the roles to what you want and
   uncomment the WEB-INF/jboss-web.xml/security-domain element to enable
   secured access to the HTML JMX console.
   <security-constraint>
     <web-resource-collection>
       <web-resource-name>HtmlAdaptor</web-resource-name>
       <description>An example security config that only allows users with the
         role JBossAdmin to access the HTML JMX console web application
       </description>
       <url-pattern>/*</url-pattern>
       <http-method>GET</http-method>
       <http-method>POST</http-method>
     </web-resource-collection>
     <auth-constraint>
       <role-name>JBossAdmin</role-name>
     </auth-constraint>
   </security-constraint>
   -->

Retirar o comentário das linhas abaixo.

<!-- A security constraint that restricts access to the HTML JMX console
   to users with the role JBossAdmin. Edit the roles to what you want and
   uncomment the WEB-INF/jboss-web.xml/security-domain element to enable
   secured access to the HTML JMX console.
   -->

   <security-constraint>
     <web-resource-collection>
       <web-resource-name>HtmlAdaptor</web-resource-name>
       <description>An example security config that only allows users with the
         role JBossAdmin to access the HTML JMX console web application
       </description>
       <url-pattern>/*</url-pattern>
       <http-method>GET</http-method>
       <http-method>POST</http-method>
     </web-resource-collection>
     <auth-constraint>
       <role-name>JBossAdmin</role-name>
     </auth-constraint>
   </security-constraint>

Arquivo que contem as senhas está em c:\jboss-xxxx\server\xxxx\deploy\jmx-console.war\WEB-INF\classes

\xxxxxx-roles.properties --> arquivo dos grupos de usuários
\xxxxxx-users.properties --> arquivo de usuários

Realizar as mesmas alterações para os arquivos disponíveis em C:\jboss-xxxxx\server\xxxxx\deploy\management\web-console.war\WEB-INF para habilitar a requisição de senhas para o jmx-console.

Caso seja necessário alterar o nome dos arquivos de senhas basta realizar as seguintes alterações em c:\jboss-xxxx\server\xxxxx\conf\login-config.xml.

<application-policy name = "jmx-console">
       <authentication>
          <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
             flag = "required">
             <module-option name="usersProperties">seu-arquivo-users.properties</module-option>
             <module-option name="rolesProperties">seu-arquivo-roles.properties</module-option>
          </login-module>
       </authentication>
    </application-policy>

    <application-policy name = "web-console">
       <authentication>
          <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
             flag = "required">
             <module-option name="usersProperties">seu-arquivo-users.properties</module-option>
             <module-option name="rolesProperties">seu-arquivo-roles.properties</module-option>
          </login-module>
       </authentication>
    </application-policy>

Obs: É necessário realizar o re-start do serviço JBoss.

5 Respostas

V

Pelo visto você entende de JBoss e talvez possa me ajudar. :slight_smile:
É que toda vez que eu tento fazer um redeploy de um pacote (jar) de EJBs ou uma aplicação Web (.WAR) o JBoss levanta uma exceção e não consegue fazer o redeploy o que me obriga a reiniciar o JBoss para fazer o deploy das aplicações.

O pacote de Ejbs tem um conjunto de interfaces que é utilizado na aplicação WEB e eu acredito que talvez essa seja uma possível causa do problema.

Você tem alguma sugestão?

R

Mapeamento do diretório das aplicações fora do /deploy.

Para que você crie suas aplicações de uma maneira mais organizada, você poderá mapear um diretório qualquer para que o JBoss faça o deploy.

Ex: Para mapear o seguinte diretório com algumas aplicações basta.

c:\ 
 |--aplicacoes 
 |    | 
 |    |---aplicacao1 
 |    |     |----*.ear 
 |    | 
 |    |---aplicacao2 
 |    |     |----*.war 
 |    | 
 |    |---aplicacao3 
 |          |----*.sar 
 | 
 |--jboss-xxxxx

Editar o arquivo c:\jboss-xxxx\server\xxxxxx\conf\jboss-service.xml e acrescentar o endereço desejado. Neste mesmo arquivo existem alguns exemplos comentados de possíveis formas de deploy.

.... 
  <attribute name="ScanPeriod">3000</attribute> 
       …. 
      <attribute name="URLs">deploy/,file:/c:/aplicacoes/</attribute> 

      <attribute name="RecursiveSearch">True</attribute> 

   </mbean> 

</server>

“ScanPeriod” --> Intervalo de tempo em milisegundos entre as varreduras por atualizações das aplicações pelo Jboss.

“RecursiveSearch” --> Habilita ou não a varredura dos subdiretórios existentes nos diretórios de deploy, no nosso caso c:\jboss-xxxx\server\xxxxxx\deploy e c:/aplicacoes

Mudar a porta padrão de 8080 para 80.

Editar o arquivo server.xml localizado em c:\jboss-xxxx\server\xxxxxx\deploy\jbossweb-tomcat50.sar\ server.xml e alterar a seguinte linha:

<conector port=8080 address ....

para

<conector port=80 address ...

Habilitar a solicitação de senha pelo JBoss ao acessar a área do web-console ou jmx-console

Para forçar o jboss a solicitar uma senha válida ao tentar acessar os consoles de administração basta alterar os seguintes arquivos:

web-console:

c:\jboss.xxxx\server\xxxxx\deploy\jmx-console.war\WEB-INF

jboss-web.xml
<jboss-web> 
   <!-- Uncomment the security-domain to enable security. You will 
      need to edit the htmladaptor login configuration to setup the 
      login modules used to authentication users. 
      <security-domain>java:/jaas/jmx-console</security-domain> 
   --> 
</jboss-web>

Retirar o comentário da linha java:/jaas/jmx-console

<jboss-web> 
   <!-- Uncomment the security-domain to enable security. You will 
      need to edit the htmladaptor login configuration to setup the 
      login modules used to authentication users. 
   --> 

      <security-domain>java:/jaas/jmx-console</security-domain> 
</jboss-web>

web.xml

<!-- A security constraint that restricts access to the HTML JMX console 
   to users with the role JBossAdmin. Edit the roles to what you want and 
   uncomment the WEB-INF/jboss-web.xml/security-domain element to enable 
   secured access to the HTML JMX console. 
   <security-constraint> 
     <web-resource-collection> 
       <web-resource-name>HtmlAdaptor</web-resource-name> 
       <description>An example security config that only allows users with the 
         role JBossAdmin to access the HTML JMX console web application 
       </description> 
       <url-pattern>/*</url-pattern> 
       <http-method>GET</http-method> 
       <http-method>POST</http-method> 
     </web-resource-collection> 
     <auth-constraint> 
       <role-name>JBossAdmin</role-name> 
     </auth-constraint> 
   </security-constraint> 
   -->

Retirar o comentário das linhas abaixo.

<!-- A security constraint that restricts access to the HTML JMX console 
   to users with the role JBossAdmin. Edit the roles to what you want and 
   uncomment the WEB-INF/jboss-web.xml/security-domain element to enable 
   secured access to the HTML JMX console. 
   --> 

   <security-constraint> 
     <web-resource-collection> 
       <web-resource-name>HtmlAdaptor</web-resource-name> 
       <description>An example security config that only allows users with the 
         role JBossAdmin to access the HTML JMX console web application 
       </description> 
       <url-pattern>/*</url-pattern> 
       <http-method>GET</http-method> 
       <http-method>POST</http-method> 
     </web-resource-collection> 
     <auth-constraint> 
       <role-name>JBossAdmin</role-name> 
     </auth-constraint> 
   </security-constraint>

Arquivo que contem as senhas está em c:\jboss-xxxx\server\xxxx\deploy\jmx-console.war\WEB-INF\classes

\xxxxxx-roles.properties --> arquivo dos grupos de usuários
\xxxxxx-users.properties --> arquivo de usuários

Realizar as mesmas alterações para os arquivos disponíveis em C:\jboss-xxxxx\server\xxxxx\deploy\management\web-console.war\WEB-INF para habilitar a requisição de senhas para o jmx-console.

Caso seja necessário alterar o nome dos arquivos de senhas basta realizar as seguintes alterações em c:\jboss-xxxx\server\xxxxx\conf\login-config.xml.

<application-policy name = "jmx-console"> 
       <authentication> 
          <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" 
             flag = "required"> 
             <module-option name="usersProperties">seu-arquivo-users.properties</module-option> 
             <module-option name="rolesProperties">seu-arquivo-roles.properties</module-option> 
          </login-module> 
       </authentication> 
    </application-policy> 

    <application-policy name = "web-console"> 
       <authentication> 
          <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" 
             flag = "required"> 
             <module-option name="usersProperties">seu-arquivo-users.properties</module-option> 
             <module-option name="rolesProperties">seu-arquivo-roles.properties</module-option> 
          </login-module> 
       </authentication> 
    </application-policy>

Obs: É necessário realizar o re-start do serviço JBoss.

R

Ops problemas com os [code]

Mapeamento do diretório das aplicações fora do /deploy.

Para que você crie suas aplicações de uma maneira mais organizada, você poderá mapear um diretório qualquer para que o JBoss faça o deploy.

Ex: Para mapear o seguinte diretório com algumas aplicações basta.

c:\
|--aplicacoes
| |
| |---aplicacao1
| | |----*.ear
| |
| |---aplicacao2
| | |----*.war
| |
| |---aplicacao3
| |----*.sar
|
|--jboss-xxxxx

Editar o arquivo c:\jboss-xxxx\server\xxxxxx\conf\jboss-service.xml e acrescentar o endereço desejado. Neste mesmo arquivo existem alguns exemplos comentados de possíveis formas de deploy.

....
3000
….
deploy/,file:/c:/aplicacoes/

True

“ScanPeriod” --> Intervalo de tempo em milisegundos entre as varreduras por atualizações das aplicações pelo Jboss.

“RecursiveSearch” --> Habilita ou não a varredura dos subdiretórios existentes nos diretórios de deploy, no nosso caso c:\jboss-xxxx\server\xxxxxx\deploy e c:/aplicacoes

Mudar a porta padrão de 8080 para 80.

Editar o arquivo server.xml localizado em c:\jboss-xxxx\server\xxxxxx\deploy\jbossweb-tomcat50.sar\ server.xml e alterar a seguinte linha:

para

Habilitar a solicitação de senha pelo JBoss ao acessar a área do web-console ou jmx-console

Para forçar o jboss a solicitar uma senha válida ao tentar acessar os consoles de administração basta alterar os seguintes arquivos:

web-console:

c:\jboss.xxxx\server\xxxxx\deploy\jmx-console.war\WEB-INF

jboss-web.xml



Retirar o comentário da linha java:/jaas/jmx-console


java:/jaas/jmx-console

web.xml

Retirar o comentário das linhas abaixo.



HtmlAdaptor
An example security config that only allows users with the
role JBossAdmin to access the HTML JMX console web application

/*
GET
POST


JBossAdmin

Arquivo que contem as senhas está em c:\jboss-xxxx\server\xxxx\deploy\jmx-console.war\WEB-INF\classes

\xxxxxx-roles.properties --> arquivo dos grupos de usuários
\xxxxxx-users.properties --> arquivo de usuários

Realizar as mesmas alterações para os arquivos disponíveis em C:\jboss-xxxxx\server\xxxxx\deploy\management\web-console.war\WEB-INF para habilitar a requisição de senhas para o jmx-console.

Caso seja necessário alterar o nome dos arquivos de senhas basta realizar as seguintes alterações em c:\jboss-xxxx\server\xxxxx\conf\login-config.xml.



flag = "required">
seu-arquivo-users.properties
seu-arquivo-roles.properties




flag = "required">
seu-arquivo-users.properties
seu-arquivo-roles.properties


Obs: É necessário realizar o re-start do serviço JBoss.

R

Bom pessoal desculpa mas parece que o guj esta com problemas com codigos comentados.

acessem http://www.javafree.com.br/forum/viewtopic.php?t=13009 para ver as dicas na integra.

Pelo visto você entende de JBoss e talvez possa me ajudar.  
É que toda vez que eu tento fazer um redeploy de um pacote (jar) de EJBs ou uma aplicação Web (.WAR) o JBoss levanta uma exceção e não consegue fazer o redeploy o que me obriga a reiniciar o JBoss para fazer o deploy das aplicações. 

O pacote de Ejbs tem um conjunto de interfaces que é utilizado na aplicação WEB e eu acredito que talvez essa seja uma possível causa do problema. 

Você tem alguma sugestão?

Bom a respeito da frase "Pelo visto você entende de JBoss e talvez possa me ajudar. " talvez não seja verdade, estou começando os estudos desta ferramentas agora e tive algumas dificuldades para achar materiais de configuração e por isso postei estas dicas apos ter mexido bastante nos xml’s do jboss, porque acho que são configurações mínimas porem bastante usadas. Bom assim de cara não consiguirei te responder, mas posta ai o erro e qual é a estrutura da sua aplicação, talvez seja os descritores xml.

V

De qualquer forma você deve entender mais que eu. :slight_smile:

Eu andei pesquisando no site do JBoss e vi alguma coisa sobre o Classloader e tal.

Minha aplicação está estruturada assim:

Nucleo.jar
–> META-INF
------>ejb-jar.xml
------>jboss.xml
–> [pacotes e classes]
–> [libs .jar]

InterfaceWeb.war (Essa aplicação usa um pacote de interfaces gerado pelo projeto de cima e ambas usam libs em comum)
–> WEB-INF
–> [páginas jsp, css, js, templates]

Os dos arquivos só geram exceção quando é feito o redeploy. O primeiro deploy sempre funciona.

Criado 18 de novembro de 2004
Ultima resposta 18 de nov. de 2004
Respostas 5
Participantes 2