Adicionar valores web.xml dinamicamente

8 respostas
arthurminarini

tenho esse xml

<servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>classes</param-name>
            <param-value>
                    adicionar classes aqui
           </param-value>

como posso adicionar parametros nesse webxml via código e que pegue as alterações.

8 Respostas

davidbuzatto

Você não vai conseguir inserir novos parâmetros (init-params), mas você pode inserir atributos (setAttribute e getAttribute) em tempo de execução em vários escopos da sua aplicação Web.

[]´s

arthurminarini

obrigado mas eu preciso que seja init param pois é para anotação de classes do DWR devo ter umas 100 linhas add la :cry:

arthurminarini

mas eu tendo o mapeamento do servlet no web xml como dar um setAttribute no servlet que eu quero (dwr-invoker)

obj: o metodo esta em uma classe que não tem nada de servlet classe comum

arthurminarini
public class DWRExtends extends DwrServlet{

    @Override
    public void init() throws ServletException {        
        super.init();
        for (String s : Scanner.bagAnotacaoDWR) {
            super.getServletContext().setAttribute("classes", s);
        }
    }
}

ao inves de mapear o servlet do dwr eu extendi a classe e mapeie ela e tentei adicionar via setatribute mas mesmo assim não deu
parece que tem que ser via parametro inicial

Hebert_Coelho

Cara, web.xml é lido uma vez e acabou. Se depois que vc iniciar o container vc for lá e alterar seu valor, isso não irá refletir sobre a aplicação.

Pq vc não cria um arquivo separado para guardar essas informações dinâmicas?

arthurminarini

porque o dwr precisa desses init param para levantar as classes de persistencia

tentei depois mas ele não subiu

Hebert_Coelho

Então é hora de apelar! Quando a pessoa clicar no botão para adicionar as linhas, vc dá start em algum programa em paralelo. Ele dá o shutdown na aplicação, adiciona as linhas, e dpois dá o start novamente! q tal? :twisted:

arthurminarini

hahahah! não obrigado! vou deixar no web.xml mesmo! rsrsrsrs

Criado 3 de setembro de 2010
Ultima resposta 4 de set. de 2010
Respostas 8
Participantes 3