10
respostas

Error loading css, cannot find "theme.css" resource of "primefaces-" library

oioi, alguém consegue ajudar?

estou usando as mesmas versões do primefaces e do all-themes das aulas... mas parece que o web.xml nao consegue setar o tema pela EL... passando: vader funciona ok.

<context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>#{temaBean.tema}</param-value>
    </context-param>
INFORMAÇÕES: Server startup in 32937 ms
FASE: RESTORE_VIEW 1
/login.xhtml
FASE: RENDER_RESPONSE 6
mai 23, 2018 12:12:42 AM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
GRAVE: Error Rendering View[/login.xhtml]
javax.faces.FacesException: Error loading css, cannot find "theme.css" resource of "primefaces-" library
    at org.primefaces.renderkit.HeadRenderer.encodeCSS(HeadRenderer.java:149)
    at org.primefaces.renderkit.HeadRenderer.encodeBegin(HeadRenderer.java:81)
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:865)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1854)
10 respostas

Oi Aline,

Poste aqui o código completo da sua classe TemaBean, para que possamos analisar se o problema é nela.

package br.com.caelum.livraria.bean;

import javax.annotation.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class TemaBean {
    private String tema = "omega";

    public String getTema() {
        return tema;
    }

    public void setTema(String tema) {
        this.tema = tema;
    }


    public String[] getTemas() {
        return new String[] {
                "afterdark", "afternoon", "afterwork", "aristo",
                "black-tie", "blitzer", "bluesky", "bootstrap", "casablanca",
                "cupertino", "cruze", "dark-hive", "delta", "dot-luv",
                "eggplant", "excite-bike", "flick", "glass-x", "home",
                "hot-sneaks", "humanity", "le-frog", "midnight", "mint-choc",
                "overcast", "pepper-grinder", "redmond", "rocket", "sam",
                "smoothness", "south-street", "start", "sunny", "swanky-purse",
                "trontastic", "ui-darkness", "ui-lightness", "vader" };
        }

}

Oi Aline,

Esse ManagedBean deve ter escopo de sessão:


@ManagedBean
@SessionScoped
public class TemaBean {

}

Obs: os imports das annotations devem ser do pacote do jsf(javax.faces).

Veja se resolve.

ops.. tem razão! ainda assim persiste o erro... logo ao chamar a página de login já ocorre:

HTTP Status 500 – Internal Server Error
Type Exception Report

Message Error loading css, cannot find "theme.css" resource of "primefaces-" library

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

javax.servlet.ServletException: Error loading css, cannot find "theme.css" resource of "primefaces-" library
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:671)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause

javax.faces.FacesException: Error loading css, cannot find "theme.css" resource of "primefaces-" library
    org.primefaces.renderkit.HeadRenderer.encodeCSS(HeadRenderer.java:149)
    org.primefaces.renderkit.HeadRenderer.encodeBegin(HeadRenderer.java:81)
    javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:865)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:1854)
    javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
    com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458)
    com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
    com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.

Oi Aline,

Bom, pela mensagem então ele não encontrou a lib de temas do primefaces.

Confere se ela está na pasta WebContent/WEB-INF/lib do seu projeto.

adicionei o "all-themes-1.0.10.jar" lá...

também confirmei em: Java Resources - Libraries - Web App Libraries - all themes - META-INF - resources - e realmente nao tinha o tema "omega" (mas estranhamente ele carrega qdo coloco de forma literal no xml omega)

então alterei para um tema que existe no TemaBean: private String tema = "afterdark";

E ocorre o mesmo erro: Error loading css, cannot find "theme.css" resource of "primefaces-" library

Oi Aline,

Só para garantir que não é problema no jar, faça o seguinte: baixe esse jar do all-themes-1.0.9 e substitua no seu projeto: https://repository.primefaces.org/org/primefaces/themes/all-themes/1.0.9/all-themes-1.0.9.jar

Outra coisa, muda no TemaBean o tema default para o blusky, para ver se pelo menos ele é carregado por padrão:

public class TemaBean {
    private String tema = "bluesky";
    //...
}

mesmo erro =/

INFORMAÇÕES: Server startup in 34916 ms
FASE: RESTORE_VIEW 1
/login.xhtml
FASE: RENDER_RESPONSE 6
mai 24, 2018 5:20:29 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
GRAVE: Error Rendering View[/login.xhtml]
javax.faces.FacesException: Error loading css, cannot find "theme.css" resource of "primefaces-" library
    at org.primefaces.renderkit.HeadRenderer.encodeCSS(HeadRenderer.java:149)
    at org.primefaces.renderkit.HeadRenderer.encodeBegin(HeadRenderer.java:81)
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:865)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1854)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458)
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

Oi Aline,

Olhando a mensagem de erro, ela dá uma possível dica sobre o problema:

... resource of "primefaces-" library

Era para a mensagem ser algo como:

... resource of "primefaces-bluesky" library

Repare que a mensagem de erro deveria mostrar o nome do tema que não foi carregado.

Se não apareceu o nome do tema, significa que tem algum erro no parametro do web.xml. Mas você postou o seu web.xml, que está assim:

<param-value>#{temaBean.tema}</param-value>

Não tem erro nessa tag, então o problema é no seu ManagedBean TemaBean.

Anteriormente tinha dito para você corrigir os imports das anotações @ManagedBean e @SessionScoped, pois estava importado de outro pacote que não é do JSF.

Dá uma conferida se você fez esse ajuste, pois pode ser esse o motivo do erro do primefaces, pois ele não encontrou o ManagedBean TemaBean, por conta da anotação incorrreta.

oi, sim, acho que também foi o import do @ManagedBean nesse caso, obrigada pela ajuda!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software