Galera, quando ocorre uma exceção no doFilter(Filter) é executado o código abaixo:
RequestDispatcher requestDispatcher = request.getRequestDispatcher("maintenance.jsp");
requestDispatcher.forward(request, response);
O direcionamento para a página ocorre, porém o css referenciado no HTML não ocorre.
Abaixo está o código no HTML da referência ao css:
<link rel="stylesheet" href="resources/css/maintenance.css">
Já tentei com mas não deu certo:
<link rel="stylesheet" href="../resources/css/maintenance.css">
O HTML está na pasta WebContent, já o css esté em WebContent/resources/css
Tem algo errado?
Vc pode mandar a estrutura de pastas do seu projeto? (Para ver onde está a página JSP e onde está o arquivo CSS)
Tente assim:
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/css/maintenance.css">
Não deu certo.
Em tempo de execução ficou dessa forma
<link rel="stylesheet" href="[/painelpreparacaocarga/resources/css/maintenance.css](http://10.74.65.30:8080/painelpreparacaocarga/resources/css/maintenance.css)">
Quando clico no caminho, dá o erro 404.
Qual servidor vc está rodando esse projeto?
Você está gerando algum war?
Está rodando direto da sua IDE?
Executando pelo Tomcat dentro do Eclipse.
Esse mesmo problema ocorre quando tento adicionar o favicon no HTML.
Tem que ver se esse arquivo CSS está sendo adicionado no war durante a execução.
Tente achar essa pasta:
{{caminho-do-seu-workspace}}\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
Os arquivos do seu projeto que serão executados no servidor, devem está nela. Se sim, veja se o arquivo CSS foi adicionado corretamente.
Essa pasta está vazia.
Quando clico no caminho do CSS no HTML pelo Eclipse, o CSS é aberto. Mas em tempo de execução não está encontrando. Tenho outros HTML nesse mesmo projeto que o CSS é carregado certinho.
Muito estranho viu. Era para ter funcionado. Será que não é cache do navegador não?
Pois é estranho mesmo. Não creio que seja problema com cache porque executei em 3 navegadores diferentes e também executando pelo Eclipse não dá certo.
Eu tenho um projeto aqui com a mesma estrutura do seu. E a minha JSP (query.jsp), localizado na raiz de webcontent, aponta para um css (dentro de uma pasta css) e funciona de boa:
Faço apenas isso no arquivo query.jsp:
<link href="css/bootstrap.min.css" rel="stylesheet">
Como essa sua página JSP é aberta? Vc acessa ela diretamente, ou tem algum mecanismo intermediário, como uma servlet, por exemplo?
O HTML é chamado dentro de uma classe que extende de Filter. Daí no doFilter() tenho o código:
if (connection == null) {
ConnectionDataBase.disconnect();
RequestDispatcher requestDispatcher = request.getRequestDispatcher("maintenance.jsp");
requestDispatcher.forward(request, response);
return;
}
Dentro desse filtro, pegue a URL que está vindo no request e poste ela aqui.
request.getRequestURL();
Qual a ideia desse filtro? Se não tiver conexão ativa, ele direciona para essa tela JSP?
Se for isso, e se o filtro estiver valendo para todo tipo de arquivo, pode ser o problema, pois ao tentar recuperar o arquivo css, o filtro irá barrar.
A ideia é essa mesmo. Toda vez que vier uma requisição então passa pelo filtro e cai na página de que o banco de dados está em manutenção, pois é uma aplicação que fica ativa sempre.
Qual seria sua sugestão?