Erro ao usar o cookMenu do MyFaces

8 respostas
saviobarr

Olá,
Estou tentando usar o t:jscookMenu, mas dá o erro abaixo:
java.lang.IllegalStateException: ExtensionsFilter not correctly configured. JSF mapping missing. JSF pages not covered. Please see: http://myfaces.apache.org/tomahawk/extensionsFilter.html

Trecho do jsp que chama o cook menu:
<f:view>
<t:jscookMenu theme=“ThemeOffice” layout=“hbr”>
<t:navigationMenuItem itemLabel=“First Level” >
</t:navigationMenuItem>
</t:jscookMenu>
</f:view>

Sei que alguns componentes myfaces precisam de filtros, e já os criei no web.xml:

MyFacesExtensionsFilter
org.apache.myfaces.webapp.filter.ExtensionsFilter

maxFileSize
20m



MyFacesExtensionsFilter

Faces Servlet

MyFacesExtensionsFilter *.jsf

Grande abraço

Sávio Barros

8 Respostas

felipeguerra
saviobarr:
Olá, Estou tentando usar o t:jscookMenu, mas dá o erro abaixo: java.lang.IllegalStateException: ExtensionsFilter not correctly configured. JSF mapping missing. JSF pages not covered. Please see: http://myfaces.apache.org/tomahawk/extensionsFilter.html

Trecho do jsp que chama o cook menu:
<f:view>
<t:jscookMenu theme="ThemeOffice" layout="hbr">
<t:navigationMenuItem itemLabel="First Level" >
</t:navigationMenuItem>
</t:jscookMenu>
</f:view>

Sei que alguns componentes myfaces precisam de filtros, e já os criei no web.xml:
&lt;filter&gt;
	&lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
	&lt;filter-class&gt;org.apache.myfaces.webapp.filter.ExtensionsFilter&lt;/filter-class&gt;
    &lt;init-param&gt;
        &lt;param-name&gt;maxFileSize&lt;/param-name&gt;
        &lt;param-value&gt;20m&lt;/param-value&gt;
    &lt;/init-param&gt;
&lt;/filter&gt;
&lt;filter-mapping&gt;
    &lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
    &lt;!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry --&gt;
    &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
&lt;/filter-mapping&gt;
&lt;!-- extension mapping for adding &lt;script/&gt;, &lt;link/&gt;, and other resource tags to JSF-pages  --&gt;
&lt;filter-mapping&gt;
    &lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
    &lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;
&lt;/filter-mapping&gt;
Grande abraço

Sávio Barros


EU uso todas essas configurações aqui:

&lt;filter&gt;
		&lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
		&lt;filter-class&gt;org.apache.myfaces.webapp.filter.ExtensionsFilter&lt;/filter-class&gt;
	&lt;/filter&gt;
	
	&lt;filter-mapping&gt;
		&lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
		&lt;url-pattern&gt;/faces/myFacesExtensionResource/*&lt;/url-pattern&gt;
	&lt;/filter-mapping&gt;
		
	&lt;filter-mapping&gt;
		&lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
		&lt;url-pattern&gt;*.jsf&lt;/url-pattern&gt;
	&lt;/filter-mapping&gt;
	
	&lt;filter-mapping&gt;
		&lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
		&lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt;
	&lt;/filter-mapping&gt;
sales_paulo

Ola,

Por favor, coloque seu web.xml completo para que eu possa avaliar as configuracoes melhor.

Obrigado.

saviobarr

Olá,
O problema era que eu estava dando um jsp:forward ao invés de um <% response.sendRedirect() %>. Pus o response.sendRedirect() e funcionou.
Grande abraço a todos.

Sávio Barros

felipeguerra

saviobarr:
Olá,
O problema era que eu estava dando um <jsp:forward> ao invés de um <% response.sendRedirect() %>. Pus o response.sendRedirect() e funcionou.
Grande abraço a todos.

Sávio Barros


Não use scrpitlet

saviobarr

felipeguerra:
saviobarr:
Olá,
O problema era que eu estava dando um <jsp:forward> ao invés de um <% response.sendRedirect() %>. Pus o response.sendRedirect() e funcionou.
Grande abraço a todos.

Sávio Barros


Não use scrpitlet

Oi Felipe, te agradeço o retorno, também gostaria de não usar scriptlet, mas vocês esqueceu de me indicar o que usar para resolver o problema. No mundo real são necessários agluns anti-patterns, desde de que justificados.
Se puder indicar a melhor solução, ao invés do que não deve ser feito, fico extremamente agradecido.
Grande abraço.

Sávio Barros

Leozin

Sávio, o extension filter não é configurado de acordo de como é configurado a tua aplicação faces

na verdade o extension filter nada mais é do que um recurso que tem alguns css/javascripts, por isso que ele é mapeado dessa maneira:

<filter>
  <filter-name>MyFacesExtensionsFilter</filter-name>
  <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
</filter>

<filter-mapping>
  <filter-name>MyFacesExtensionsFilter</filter-name>
  <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>

[b]<filter-mapping>
  <filter-name>MyFacesExtensionsFilter</filter-name>
  <url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
 </filter-mapping>[/b]

Esse trecho em negrito não está mapeado no teu web.xml

coloca ele e veja se funciona

Ps.: ah e já se prepara que a dor de cabeça com o JSCookMenu nem começou ainda :P

abraço

EDIT1: o negrito não funcionou

EDIT2: por que você está usando o response.sendRedirect? Você quer fazer com que quando você escolha algo do menu ele vá pra outra página?

saviobarr

Que fique claro que busco uma solução para um problema pontual, e não medir conhecimento com ninguém. Acho que aqui não é lugar pra isso.

[]´s

Sávio Barros

felipeguerra

saviobarr:
Que fique claro que busco uma solução para um problema pontual, e não medir conhecimento com ninguém. Acho que aqui não é lugar pra isso.

[]´s

Sávio Barros


Me parece que é vc quem colocou esse sentimento de desmerecimento no tópico.

Criado 24 de janeiro de 2008
Ultima resposta 24 de jan. de 2008
Respostas 8
Participantes 4