5 Replies Latest reply on Aug 8, 2013 9:23 AM by mauriciomag

    Propriedades JVM utilizadas web.xml Jboss 7.2.0

    geovana.possenti

      Boa tarde,

       

      Na versão 4.2.3 do Jboss utilizávamos no nosso ambiente a parametrização de uma variável no start do Jboss que posteriormente utilizávamos no web.xml dos pacotes das aplicações deployadas no nosso servidor de aplicação.

       

      Definíamos o parâmetro server.url no start: -Dserver.url=<HOSTNAME_FRONT_END>

      E no web.xm das aplicações utilizávamos este parâmetro:

         <context-param>

            <param-name>serverName</param-name>

            <param-value>https://${server.url}</param-value>

         </context-param>

       

      Tentei utilizar esta mesma estratégia no Jboss 7.2.0, mas sem sucesso:

      Defini o parâmetro para o server-one:

      /server-group=main-server-group/jvm=default:add-jvm-option(jvm-option="-Dserver.url=<HOSTNAME_FRONT_END>")

      E tentei utilizar no web.xml:

         <context-param>

            <param-name>serverName</param-name>

            <param-value>https://${server.url}</param-value>

         </context-param>

       

      Mas não obtive sucesso, ele desconsidera o valor do parâmetro definido no start e trás a string como "https://${server.url}" sem substituição do que foi passado para a JVM.

       

      Alguém tem alguma idéia de como fazer o web.xml reconhecer parâmetros definidos no start?

        • 1. Re: Propriedades JVM utilizadas web.xml Jboss 7.2.0
          adrianoschmidt

          oi, mas pq no jboss 7 você não está passando a variável no start também?

           

          ./standalone.sh -Dserver.url=<HOSTNAME_FRONT_END>

          • 2. Re: Propriedades JVM utilizadas web.xml Jboss 7.2.0
            geovana.possenti

            Porque estou usando o modo domain. Mas independente de como passei o parâmetro eu sei que a JVM está recebendo o parâmetro corretamente. Primeiro porque se dou um ps no processo o parâmetro vêm listado na descrição e outra porque peguei uma aplicação simples do magnani que lista as propriedades do server e mandei listar o valor do parâmetro server.url através de uma página .jsp e o retorno veio correto. O problema é: sei que uma página .jsp consegue pegar o retorno do parâmetro corretamente. Porque um web.xml que na versão 4.2.3 do Jboss também conseguia pegar o valor desse parâmetro, no Jboss 7.2.0 não consegue retornar o valor do parâmetro.

             

            ps do processo:

             

            [root@flnas002qai ~]# ps aux | grep server-one

            root     11154  0.0  0.0 103244   836 pts/0    S+   10:38   0:00 grep server-one

            jboss    23824  0.3 16.6 3405264 651316 ?      Sl   Aug05   8:09 /usr/local/java7/bin/java -D[Server:server-one] -XX:PermSize=64m -XX:MaxPermSize=384m -Xms64m -Xmx512m -server -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Dserver.url=qai.xxxxx.com -D[Host Controller]=true -Djboss.bind.address=10.9.15.XXX -Djava.awt.headless=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.home.dir=/usr/local/jboss720 -Djava.net.preferIPv4Stack=true -Djboss.server.log.dir=/usr/local/jboss720/domain/servers/server-one/log -Djboss.server.temp.dir=/usr/local/jboss720/domain/servers/server-one/tmp -Djboss.server.data.dir=/usr/local/jboss720/domain/servers/server-one/data -Dlogging.configuration=file:/usr/local/jboss720/domain/servers/server-one/data/logging.properties -jar /usr/local/jboss720/jboss-modules.jar -mp /usr/local/jboss720/modules -jaxpmodule javax.xml.jaxp-provider org.jboss.as.server

             

            A página JSP retorna o valor correto:

             

             

             

            SystemProps.png

            A aplicação possui a configuração abaixo no web.xml que informa onde está publicada o cas de autenticação:


            <filter>

            <filter-name>CAS Authentication Filter</filter-name>

            <filter-class>

            org.jasig.cas.client.authentication.Saml11AuthenticationFilter

            </filter-class>

            <init-param>

            <param-name>casServerLoginUrl</param-name>

            <param-value>https://${jboss.server.name}/xxxxxxx/cas/login</param-value>

            </init-param>

            </filter>

             

            Quando acesso a aplicação, ao invés de ele alterar a parametrização ${jboss.server.name} para o valor que está setado no start, ele não faz nada e usa a string que defini no web.xml. Minha URL no browser fica assim:

            https://${jboss.server.name}/xxxxx/cas/login?TARGET=https%3A%2F%2F%24{jboss.server.name}%2Fxxxxxxxx%2F

             

             

            Em Jboss 4.2.3 essa estratégia funcionava corretamente, sem maiores problemas.

            • 3. Re: Propriedades JVM utilizadas web.xml Jboss 7.2.0
              mauriciomag

              Oi Geovana,

               

              Aparentemente isso se trata dessa thread....

               

              https://community.jboss.org/message/729723

              https://issues.jboss.org/browse/AS7-4479

               

              Bom eu posso estar viajando por que ainda não testei isso mas para fazer property substitution no JBoss AS 7.1.2 coloque a spec-descriptor-property-replacement com true:

              <subsystem xmlns="urn:jboss:domain:ee:1.1">

                         

              <spec-descriptor-property-replacement>true</spec-descriptor-property-replacement>

                         

              <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>

                     

              </subsystem>

               

              Tenta isso e me diz se funcionou

               

              Se não funcionar vou testar de outras maneiras e dar um feedback

               

              Abs

              • 4. Re: Propriedades JVM utilizadas web.xml Jboss 7.2.0
                geovana.possenti

                Boa Magnani,

                 

                Era isso aí mesmo. Perdi umas semaninhas tentando fazer isso aí funcionar. Você sempre ajudando a galera do fórum. Valeu mesmo...

                 

                Alterei a propriedade:

                [domain@flnas002qai:9999 /] /profile=full/subsystem=ee:write-attribute(name=spec-descriptor-property-replacement,value=true)

                {

                    "outcome" => "success",

                    "result" => undefined,

                    "server-groups" => {"main-server-group" => {"host" => {"master" => {"server-one" => {"response" => {"outcome" => "success"}}}}}}

                }

                 

                 

                At.

                Geovana

                • 5. Re: Propriedades JVM utilizadas web.xml Jboss 7.2.0
                  mauriciomag

                  Oi Geovana,

                   

                  Opa!

                   

                  fico feliz que tenha funcionado

                   

                  Abraços