Tomcat - como desabilitar host /nomedaaplicação

Tentei pensar em um título melhor mas não consegui.
Tenho uma aplicação que roda sobre um dns www.nomedaaplicação.com.br, essa é a aplicação default do tomcat, mas ela tambem responde ao www.nomedaaplicação.com.br/nomedaaplicação, queria saber se tem como desabilitar esse /nomedaaplicação e deixar somente www.nomedaaplicação.com.br

Obrigado a todos.

Olá!

Você pode me dizer o porque dessa necessidade ? Não estou enchergando nenhum motivo para desabilitar essa função!!

Se seu ambiente estiver configurado direito, você deve ter no documentRoot do www.nomedaaplicação.com.br um diretório ROOT com a sua aplicação. Assim, basta não criar o diretório nomedaaplicação.

É isso mesmo o problema ?

[quote=gleise]Olá!

Você pode me dizer o porque dessa necessidade ? Não estou enchergando nenhum motivo para desabilitar essa função!!

Se seu ambiente estiver configurado direito, você deve ter no documentRoot do www.nomedaaplicação.com.br um diretório ROOT com a sua aplicação. Assim, basta não criar o diretório nomedaaplicação.

É isso mesmo o problema ?

[/quote]

É o seguinte minha aplicação responde pelo dns www.nomedela.com.br ok? só que alguns usuários não sei porque estão acessando www.nomedela.com.br/nomedela, que é a mesma aplicação, mas “essa aplicação” com /nomedela não compartilha os recursos da aplicação
www.nomedela.com.br, sessão, etc… ocasionando alguns bugs, com certeza na aplicação deve haver algum link com /nomedela/página.jsp, ou então algum javascript, etc… digitado erroneamente por alguem, mas eu queria evitar isso de qualquer modo, pois a aplicação esta em produção já, e irá depois para um balanceador de carga por hardware e não sei como ela se comportará(espero que bem), e acho que deverão acontecer alguns erros.

Espero ter te ajudado a entender a necessidade.
Valeu.

Abraço.

Ok, entendi.

Já que a aplicação já entrou em produção, porque você nao remove o /nomedela ? Ou moda o nome (tipo /supervelho), assim vc evita esse acesso errado e acaba descobrindo os links configrados errados.

Você configurou para o tomcat responder direto por www.nomedela.com.br ou está usando o conector com o apache ?
Se estiver usando o conector com o apache, você pode configurar para não montar esse diretorio no tomcat (tipo: jkumount) e até colocar páginas de erros personalizadas no diretório. :wink: Mas acho que o tomcat também tem esse recurso.

Espero estar ajudando! :smiley:

[quote=gleise]Ok, entendi.

Já que a aplicação já entrou em produção, porque você nao remove o /nomedela ? Ou moda o nome (tipo /supervelho), assim vc evita esse acesso errado e acaba descobrindo os links configrados errados.

Você configurou para o tomcat responder direto por www.nomedela.com.br ou está usando o conector com o apache ?
Se estiver usando o conector com o apache, você pode configurar para não montar esse diretorio no tomcat (tipo: jkumount) e até colocar páginas de erros personalizadas no diretório. :wink: Mas acho que o tomcat também tem esse recurso.

Espero estar ajudando! :smiley:

[/quote]

Valeu pela ajuda
no server.xml esta assim:


<Engine name="Catalina" defaultHost="aplicacao.com.br">

<Host name="aplicacao.com.br" debug="1" 

                appBase="/usr/local/java/tomcat/webapps"

                unpackWARs="true" autoDeploy="true"> 

                <Context path="" docBase="aplicacao" debug="0"/>

                <Valve className="org.apache.catalina.valves.AccessLogValve"

                        directory="logs" prefix="access_log." suffix=".txt"

                        pattern="common" resolveHosts="false" />

        </Host>

Defini o default host para a minha aplicação base.
Não tenho pleno acesso a produção.

Valeu pela força.

Pelo menos você consegue configurar o host!! :smiley:
Se você tiver acesso com permissão de escrita em /usr/local/java/tomcat, você pode fazer assim:

<Host name="aplicacao.com.br" debug="1"   
                 appBase="/usr/local/java/tomcat/aplicacao.com.br"  
                 unpackWARs="true" autoDeploy="true">  
      
                <Valve className="org.apache.catalina.valves.AccessLogValve"  
                         directory="logs" prefix="access_log." suffix=".txt"
                         pattern="common" resolveHosts="false" >
</Host>

Daí, é só colocar os arquivos da aplicação padrão no diretório appBase/ROOT (tem que ser tudo maiusculo mesmo). :wink:
Para o tomcat, a aplicação padrão de um host é o diretório ROOT dentro do appBase do Host.

Dessa maneira:

  1. A aplicação padrão é a representada pelo diretório ROOT. Ou seja, ela é acessada através do endereço www.aplicacao.com.br;
  2. Seu domínio pode ter quantas aplicações quiser. Sendo cada aplicação um diretório dentro do appBase. Por exemplo, para uma aplicação chamada agenda, a url seria www.aplicacao.com.br/agenda;
  3. Cada aplicação pode ter seu contexto definido em appBase/aplicacao/META-INF/context.xml;
  4. Não precisa ficar mechendo nas aplicações padrões que vêem com o tomcat;

Se você tiver apenas acesso de FTP no servidor, peça para mapearem a appBase para um diretório da sua conta de ftp. O resto, você pode ter controle a partir da sua conta de ftp.
Daí, desabilitar o /aplicacao fica fácil, bastando renomear o diretório ou remover os arquivos do mesmo colocando uma mensagem de erro.

Espero ter ajudado. :slight_smile:

[quote=gleise]Pelo menos você consegue configurar o host!! :smiley:
Se você tiver acesso com permissão de escrita em /usr/local/java/tomcat, você pode fazer assim:

<Host name="aplicacao.com.br" debug="1"   
                 appBase="/usr/local/java/tomcat/aplicacao.com.br"  
                 unpackWARs="true" autoDeploy="true">  
      
                <Valve className="org.apache.catalina.valves.AccessLogValve"  
                         directory="logs" prefix="access_log." suffix=".txt"
                         pattern="common" resolveHosts="false" >
</Host>

Daí, é só colocar os arquivos da aplicação padrão no diretório appBase/ROOT (tem que ser tudo maiusculo mesmo). :wink:
Para o tomcat, a aplicação padrão de um host é o diretório ROOT dentro do appBase do Host.

Dessa maneira:

  1. A aplicação padrão é a representada pelo diretório ROOT. Ou seja, ela é acessada através do endereço www.aplicacao.com.br;
  2. Seu domínio pode ter quantas aplicações quiser. Sendo cada aplicação um diretório dentro do appBase. Por exemplo, para uma aplicação chamada agenda, a url seria www.aplicacao.com.br/agenda;
  3. Cada aplicação pode ter seu contexto definido em appBase/aplicacao/META-INF/context.xml;
  4. Não precisa ficar mechendo nas aplicações padrões que vêem com o tomcat;

Se você tiver apenas acesso de FTP no servidor, peça para mapearem a appBase para um diretório da sua conta de ftp. O resto, você pode ter controle a partir da sua conta de ftp.
Daí, desabilitar o /aplicacao fica fácil, bastando renomear o diretório ou remover os arquivos do mesmo colocando uma mensagem de erro.

Espero ter ajudado. :slight_smile: [/quote]

Ajudou muito, depois acabei comprando um livro dobre tomcat, que me deu mais detalhes mas foi basicamente o que vc falou.
Valeu!

bom, nao li toda a discussão, mas se for apenas um redirecionamento, basta inserir essa tag, html, em seu

ficaria assim:

<head>
<meta http-equiv="refresh" content="0;url=default.jsf">
</head>

em 0 segundos da um refresh na pagina atual redirecionando para a url(passando o padra da url, .seam, .faces, .jsf, .java, etc.)