Pergunta

Eu estou tentando usar links simbólicos em um dos aplicativos já em execução no tomcat5. Graças à ajuda de outra questão StackOverflow eu era capaz de fazê-lo criando um arquivo context.xml em

/ ... myapplication / META-INF / context.xml

Agora estou tentando implementar isso em um servidor de produção. No entanto, existem outras aplicações rodando nele. E há um outro arquivo de contexto

/ ... tomcat / conf / context.xml

Parece-me estes estão definindo configurações de largura servidor para todas as aplicações. Se eu allowLinks no arquivo conf / context.xml, meu links simbólicos trabalho. Se não faço allowLinks em conf / context.xml, links simbólicos do meu aplicativo não funcionam, apesar de eu ter permitido-los no META-INF / context.xml

A minha pergunta é, será que o conf / context.xml controlar todas as aplicações? Se eu quiser links simbólicos para o trabalho em apenas uma aplicação, eu preciso remover o conf / context.xml e criar novos arquivos de contexto para cada aplicação? Ou há uma maneira que eu posso permitir que links simbólicos em myapplication única?

Foi útil?

Solução

Consulte minha resposta para o " Qual Tomcat 5 arquivo de contexto tem precedência " pergunta.

Quanto à sua pergunta allowLinks específica, o valor em conf/context.xml tem precedência por padrão. Se você não diz nada em sua conf/context.xml, o valor padrão é allowLinks="false" em sua conf/context.xml.

Se você quiser mudá-lo apenas para sua myapplication, tentando dizer <Context allowLinks="true" ...> em sua META-INF/context.xml não terá nenhum efeito porque normalmente a configuração conf/context.xml terá precedência.

Mas, se você disser <Context allowLinks="true" override="true" ...> em sua META-INF/context.xml, então todas as suas configurações <Context> em META-INF/context.xml será maior precedência, substituindo qualquer coisa em conf/context.xml.

Finalmente, em vez de um arquivo myapplication/WEB-INF/context.xml, eu recomendo usar um arquivo conf/Catalina/localhost/myapplication.xml. Isto significa técnica que você pode manter o conteúdo de seu WEB-INF limpo, que é a coragem do seu webapp - Eu não gosto de risco mucking nas vísceras de meu webapp. : -)

Outras dicas

Só para acrescentar um ponto.

Normalmente th META-INF / context.xml é copiado para o conf / Catalina / localhost / myapplication.xml

Quando redploying um arquivo de guerra, o conf / Catalina / localhost / myapplication.xml é excluído e um novo copiado em como descrito acima.

Esta pode ser uma dor real. Eu gosto da idéia de contexto específico de aplicação, mas eu não consigo ver como tendo esta no diretório META-INF ajuda.

Para Prod, UAT, etc isso torna-se uma dor real.

Assim, para estática servidor nada, mas de aplicação específica é melhor para colocá-lo no conf / context.xml. Que tem o negativo que detém contexto para várias aplicações, toque que você inadvertidamente tocá-los todos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top