Um ou mais recursos possuem o destino de 'head'... jsf 2 + facelets + primefaces + template

Bom dia pessoal.

Estou desenvolvendo um aplicativo utilizando jsf 2.1 facelets + primefaces 3.4 + template e estou recebendo o erro abaixo ao carregar o template:

Um ou mais recursos possuem o destino de 'head', mas nenhum componente de 'head' foi definido na exibição.

Pesquisei sobre o assunto e em todos os posts, a solução dada é trocar a tag por <h:head>, no entanto, meu template já está com a tag <h:head>, conforme abaixo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>JVMSOFTWARE - DELIVERY</title>
</h:head>
<h:body>
      <div id="dtopo" align="center">
        <ui:insert name="topo">
            <ui:include src="/topo/topo.xhtml"/>
        </ui:insert>
      </div>
      <br/>
      
      <div id="dmenu" align="center">
        <ui:insert name="menu">
            <!-- 
            se utilizado em sistema diferente,
            alterar sistem na construção do param
            -->
            <ui:include src="http://localhost:8081/Delivery/menu/menu.xhtml?param=#{loginBean.usr}:DLV"/>
        </ui:insert>
      </div>
      <br/>
      
      <p:messages/>
      
      <div id="dprincipal" align="center">
        <ui:insert name="principal">
        </ui:insert>
      </div>
      
</h:body>  
</html>

Já tentei incluir a tag <h:head> nas paginas de composição, mas continua com problema.
Vocês tem alguma idéia de porque isso pode estar ocorrendo? podem ajudar?

Olá siesler,

Não sei se irá resolver, mas tente adicionar um <p:resources/> dentro do <h:head>, desta forma:

    <h:head>  
        <title>JVMSOFTWARE - DELIVERY</title>
        <p:resources/>  
    </h:head>

Se ainda não funcionar, poste aqui os arquivos que você inclui no template. (:

Bom dia David.

Não funcionou, seguem os códigos das paginas usadas no include:

topo.xhtml:

<ui:fragment
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">

    <h:form id="formTopo">  
      <p:panelGrid columns="6"/>
        <p:column>
            usuario
        </p:column>
        <p:column>
            <p:inputText value="#{loginBean.usuario.user}" disabled="true" style="font-size:small"/>
        </p:column>
        <p:column>
            empresa
        </p:column>
        <p:column>
            <p:inputText value="#{loginBean.empresa.fantasia}" disabled="true" style="font-size:small"/>
        </p:column>
        <p:column>
            sistema
        </p:column>
        <p:column>
            <p:inputText value="#{loginBean.sistema.nomeSistema}" disabled="true" style="font-size:small"/>
        </p:column>
  </h:form>
</ui:fragment>

menu.xhtml:

<ui:fragment
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">

    <f:metadata>
        <f:viewParam name="param" value="#{indexController.param}"/>
        <f:event type="preRenderView" listener="#{indexController.init}"/>
    </f:metadata>

    <center>
    <p:panel style="font-size: 10px; text-align: center;width: 850px; vertical-align: middle;">     
        <h:panelGrid columns="1">
            <h:column>
                <h:form id="formMenu">
                    <p:menubar style="font-size: 10px; text-align: left; width: 810px; vertical-align: middle;" model="#{indexController.menuModel}"/>
                </h:form>
            </h:column>
        </h:panelGrid>
    </p:panel>
    </center>

</ui:fragment>

Se precisar que eu poste as paginas que são abertas na insert “principal”, avisa que eu posto aqui
Obrigado

Que estranho… testei aqui e funcionou.
Se puder, poste as páginas que são abertas na insert “principal” então.

seguem as paginas da insert principal:

cardapios.xhtml:

<ui:composition template="principal.xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">
  <ui:define name="principal">

    <h:form id="formCardapio">
      Pagina de cardapios
    </h:form>

  </ui:define>
</ui:composition>

clientes.xhtml

<ui:composition template="principal.xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">
  <ui:define name="principal">

    <h:form prependId="false" id="formCliente">
        <p:panel style="font-size: small">
            <p:commandButton icon="ui-icon-search" value="pesquisar" onclick="dlg.show();"/>
            <p:commandButton icon="ui-icon-plusthick" value="incluir"/>
        </p:panel>
        
        <p:dataTable style="font-size:small" id="tabelaClientes" var="iten" value="#{clientesBean.listClientes}"  
                     paginator="false" rows="10"  
                     paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                     rowsPerPageTemplate="5,10,15">  
            <f:facet  name="header">  
                Ajax Pagination
            </f:facet>  

            <p:column>  
                <f:facet name="header">  
                    <h:outputText value="Acoes"/>  
                </f:facet>  
                <p:commandButton icon="ui-icon-pencil"/>
                <p:commandButton icon="ui-icon-trash"/>
            </p:column>  
            
            <p:column>  
                <f:facet name="header">  
                    <h:outputText value="NomeCliente"/>  
                </f:facet>  
                <h:outputText value="#{iten.nome}"/>
            </p:column>  

            <p:column>  
                <f:facet name="header">  
                    <h:outputText value="DDD" />
                </f:facet>  
                <h:outputText value="#{iten.ddd}" />  
            </p:column>  

            <p:column>  
                <f:facet name="header">  
                    <h:outputText value="Telefone" />  
                </f:facet>  
                <h:outputText value="#{iten.telefone}" />  
            </p:column>

            <p:column>
                <f:facet name="header">
                    <h:outputText value="Bairro"/> 
                </f:facet>  
                <h:outputText value="#{iten.bairro}"/>
            </p:column>  >

            <p:column>
                <f:facet name="header">
                    <h:outputText value="Endereço"/> 
                </f:facet>  
                <h:outputText value="#{iten.endereco}"/>
            </p:column>  
        </p:dataTable>  

    <p:dialog header="Enter FirstName" widgetVar="dlg" resizable="false">  
        <h:form id="form">  
            <ui:include src="clientesConsulta.xhtml"/>
        </h:form>  
    </p:dialog> 
    </h:form>
      
  </ui:define>
</ui:composition>

clientesConsulta.xhtml (chamada pela pagina clientes.xhtml):

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">

    <h:form>
        <div align="center">
        <br/><br/>
        consulta de clientes<br/>
            <h:panelGrid columns="2" cellpadding="5">  
                <h:outputLabel style="font-size: small" for="telefone" value="Telefone" />
                <p:inputText size="9" style="font-size: small" value="#{clientesBean.telefone}"   
                        id="telefone" label="telefone" />  

                <h:outputLabel style="font-size: small" for="documento" value="CPF/CNPJ:" />  
                <p:inputText style="font-size: small" value="#{clientesBean.cpfCnpj}"   
                        id="documento" label="documento" />

                <h:outputLabel style="font-size: small" for="nome" value="nome:" />  
                <p:inputText style="font-size: small" value="#{clientesBean.nome}"   
                        id="nome" label="nome" />

            </h:panelGrid>
        <p:commandButton id="submitButton" icon="ui-icon-search" value="pesquisar" ajax="true"
                         update=":formCliente:tabelaClientes" oncomplete="dlg.hide();" action="#{clientesBean.listCliente}">
            <f:setPropertyActionListener target="#{clientesBean.empresa}" value="#{loginBean.empresa}"/>
        </p:commandButton>
        </div>
    </h:form>
</html>

tentei uncluir na clientesConsulta.xhtml

    <h:head>
        <p:resources/>
    </h:head>

mas mesmo assim continua com a mensagem de head
obrigado

reparei que no <h:head> sempre está com alerta na IDE: content is being hidden from the validator based on namespace filtering
estou usando netbeans 7.3

Att:

Estranho isso, criei um projeto aqui, adicionei esses arquivos, apenas tirando referências a beans e coisas do tipo, e não apareceu essa mensagem que você falou.
Em compensação, apareceu uma outra:

Tente fazer o seguinte: Veja se no seu arquivo web.xml está desse jeito:

<context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>

Se estiver, tente trocar por:

<context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Product</param-value>
    </context-param>

Se ainda assim não funcionar, não sei o que pode ser… =//

Testei aqui e funcionou em partes.

Antes de alterar o web.xml, eu tinha a mensagem duplicada, uma como uma anotação simples na pagina e outra do componete <p:messages> do primefaces.

A anotação simples não está sendo mais exibida na pagina, mas a do componente primefaces continua sendo exibida.

To achando que o problema tá na tela de login do sistema.

Vou fazer mais uns testes aqui e posto depois

Obrigado