Problemas com JSF e Primefaces

3 respostas
F

Olá pessoal tenho um site que está renderizando muito lento as páginas jsf. Queria saber o que posso fazer para renderizar mais rápido se uma configuração no software ou no meu servidor…

Constatei que o problema é realmente a página jsf. porque as consultas são feitas praticamente na VELOCIDADE DA LUZ…

O que eu posso fazer.

Vlw galera…

3 Respostas

dreampeppers99

FelipeThi:
Olá pessoal tenho um site que está renderizando muito lento as páginas jsf. Queria saber o que posso fazer para renderizar mais rápido se uma configuração no software ou no meu servidor…

Constatei que o problema é realmente a página jsf. porque as consultas são feitas praticamente na VELOCIDADE DA LUZ…

O que eu posso fazer.

Vlw galera…


Estranho, poste seu web.xml (se tiver), faces-config.xml (se tiver) e sua página xhtml (e ou templates se tiver) e mostre onde acha que está renderizando mais lentamente.

C

FelipeThi:
Olá pessoal tenho um site que está renderizando muito lento as páginas jsf. Queria saber o que posso fazer para renderizar mais rápido se uma configuração no software ou no meu servidor…

Constatei que o problema é realmente a página jsf. porque as consultas são feitas praticamente na VELOCIDADE DA LUZ…

O que eu posso fazer.

Vlw galera…


Felipe, estou desenvolvendo um sistema e encontrei o mesmo problema, na renderização eu faço update="@form", o que faz com que ele renderize todos os forms, uso isso para fazer internacionalização e trocar a linguagem, a velocidade da consulta é excelente, porém, depois, parece que depois ele “trava a página” por uns segundos sem deixar eu clicar ou fazer nada (É o que acontece com você?), como você está renderizando?

alcirBarros

Aee galera Também quero a resposta pra esse problema

Uso hibernate+JSF(Primefaces,RichFaces)
Minha aplicação já ta bem grandinha com umas 100 tabelas
Em todos os métodos testados como por exemplo carregamento de listas que carregamos elas direto do get do dataModel (nao sei se isso e errado mas estou usando assim ) as telas sempre fazem duas vezes as consultas no banco tornando a navegação lenta vou deixa aqui umas dos get/s de dataModel que uso pra carrega essas lista.

E mesmo em uma simples ação de redirecionamento de pagina (Tipo click em um botao e ir pra outra Pagina ) em que não vai ao Java nem faz consulta no banco a uma certa demora pra carrega esses paginas

vou posta como estão configurados meu Web.xml e também dos faces-navigation.xml, faces-managed-beans.xml e por fim o faces-config.xml so que desse serão apenas partes porque estão muito grandes

hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory name="">
  <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
  <property name="connection.driver_class">org.postgresql.Driver</property>

	<property name="connection.url">jdbc:postgresql://localhost:5432/banco</property>
	<property name="connection.username">postgres</property>
	<property name="connection.password">123</property>

<!--<property name="hibernate.format_sql">true</property>-->
<!--<property name="hibernate.show_sql">true</property>-->
  
  <property name="hibernate.hbm2ddl.auto">none</property>
  <property name="hibernate.connection.autocommit">false</property>
  
  <property name="c3p0.acquire_increment">1</property>
  <property name="c3p0.max_size">10</property>
  <property name="c3p0.max_statements">50</property>
  <property name="c3p0.min_size">5</property>
  <property name="c3p0.timeout">1800</property>
  
  <mapping class="br.com.sisconf.modelo.vo.Usuario"/>
  <mapping class="br.com.sisconf.modelo.vo.Menu"/>
  <mapping class="br.com.sisconf.modelo.vo.Usuario_Menu"/>
  <mapping class="br.com.sisconf.modelo.vo.Uf"/>
  <mapping class="br.com.sisconf.modelo.vo.Empresa"/>
  <mapping class="br.com.sisconf.modelo.vo.Cliente_Fornecedor"/>
  <mapping class="br.com.sisconf.modelo.vo.UsuarioTabelaPreco"/>
  <mapping class="br.com.sisconf.modelo.vo.GrupoProduto"/>
  <mapping class="br.com.sisconf.modelo.vo.Produto"/>
  <mapping class="br.com.sisconf.modelo.vo.Unidade"/>
  <mapping class="br.com.sisconf.modelo.vo.Tamanho"/>
  <mapping class="br.com.sisconf.modelo.vo.FmRecebimento"/>
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>NOME APAGADO</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>

	</welcome-file-list>
	<login-config>
		<auth-method>BASIC</auth-method>
	</login-config>
	<context-param>
		<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
		<param-value>.xhtml</param-value>
	</context-param>
	<context-param>
		<param-name>facelets.DEVELOPMENT</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>com.sun.faces.validateXml</param-name>
		<param-value>false</param-value>
	</context-param>
	<context-param>
		<param-name>com.sun.faces.verifyObjects</param-name>
		<param-value>true </param-value>
	</context-param>

	<context-param>
		<param-name>javax.faces.CONFIG_FILES</param-name>
		<param-value>/WEB-INF/faces-config.xml, /WEB-INF/faces-navigation.xml, /WEB-INF/faces-managed-beans.xml</param-value>
	</context-param>

	<context-param>
		<param-name>com.sun.faces.expressionFactory</param-name>
		<param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
	</context-param>
 	
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.jsf</url-pattern>
		<url-pattern>*.faces</url-pattern>
	</servlet-mapping>

	<context-param>
		<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
		<param-value>com.sun.facelets.FaceletViewHandler</param-value>
	</context-param>

	<filter>
		<display-name>RichFaces Filter</display-name>
		<filter-name>richfaces</filter-name>
		<filter-class>org.ajax4jsf.Filter</filter-class>
	</filter>
	
	<servlet>  
       <servlet-name>Resource Servlet</servlet-name>  
        <servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>  
    </servlet>  
     
   <servlet-mapping>  
       <servlet-name>Resource Servlet</servlet-name>  
       <url-pattern>/primefaces_resource/*</url-pattern>  
   </servlet-mapping>  

	<filter-mapping>
		<filter-name>richfaces</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>INCLUDE</dispatcher>
	</filter-mapping>

	<listener>
		<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
	</listener>

	<context-param>
		<param-name>facelets.SKIP_COMMENTS</param-name>
		<param-value>true</param-value>
	</context-param>
	
	<listener>
		<listener-class>
			br.com.sisconf.util.session.MySessionListener
		</listener-class>
	</listener>

	<filter>
		<filter-name>SessionTimeoutFilter</filter-name>
		<filter-class>
			br.com.sisconf.util.session.SessionTimeoutFilter
		</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>SessionTimeoutFilter</filter-name>
		<url-pattern>*.jsf</url-pattern> 
	</filter-mapping>
     
   <session-config>  
      <!-- 30 MINUTOS -->  
      <session-timeout>30</session-timeout>  
   </session-config>  
	
			
</web-app>
faces-navigation.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xi="http://www.w3.org/2001/XInclude"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
 <!-- Login -->
 <navigation-rule>
  <from-view-id>/pages/login/login.xhtml</from-view-id>
  <navigation-case>
   <display-name>principal</display-name>
   <from-outcome>success</from-outcome>
   <to-view-id>/pages/modulo/aplicacao.xhtml</to-view-id>
  </navigation-case>
  <navigation-case>
   <from-outcome>error</from-outcome>
   <to-view-id>/pages/login/login.xhtml</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <from-view-id>*</from-view-id>
  <!--Menu Cadastro -->
  <navigation-case>
   <display-name>Natureza Operacao</display-name>
   <from-outcome>menuNaturezaOperacao</from-outcome>

   <to-view-id>/pages/naturezaOperacao/naturezaOperacaoLista.xhtml</to-view-id>
  </navigation-case>
  <navigation-case>
<navigation-rule>
  <from-view-id>/pages/usoConsumo/usoConsumoLista.xhtml</from-view-id>
  <navigation-case>
   <display-name>UsoConsumo</display-name>
   <from-outcome>doNovoUsoConsumo</from-outcome>
   <to-view-id>/pages/usoConsumo/usoConsumo.jsf</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <from-view-id>/pages/usoConsumo/usoConsumo.xhtml</from-view-id>
  <navigation-case>
   <display-name>Mobilizado</display-name>
   <from-outcome>doListaUsoConsumo</from-outcome>
   <to-view-id>/pages/usoConsumo/usoConsumoLista.jsf</to-view-id>
  </navigation-case>
  <navigation-case>
   <display-name>Mobilizado</display-name>
   <from-outcome>success</from-outcome>
   <to-view-id>/pages/usoConsumo/usoConsumo.jsf</to-view-id>
  </navigation-case>
 </navigation-rule>
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xi="http://www.w3.org/2001/XInclude"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<!--  <lifecycle>  -->
<!--	  <phase-listener>br.com.sisconf.util.ControlPhaseListener</phase-listener>  -->
<!-- </lifecycle> -->

 <validator>
  <validator-id>validadorEmail</validator-id>
  <validator-class>br.com.sisconf.util.validator.EmailValidator</validator-class>
 </validator>
 <validator>
  <validator-id>validadorTel</validator-id>
  <validator-class>br.com.sisconf.util.validator.TelValidador</validator-class>
 </validator>
 <validator>
  <validator-id>validadorCpf</validator-id>
  <validator-class>br.com.sisconf.util.validator.CpfValidador</validator-class>
 </validator>
 <validator>
  <validator-id>validadorData</validator-id>
  <validator-class>br.com.sisconf.util.validator.DataValidador</validator-class>
 </validator>
 <validator>
  <validator-id>validadorDia</validator-id>
  <validator-class>br.com.sisconf.util.validator.DiaValidador</validator-class>
 </validator>
 <validator>
  <validator-id>validatorCnpjValidator</validator-id>
  <validator-class>br.com.sisconf.util.validator.CnpjValidador</validator-class>
 </validator>
 <application>
  <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
  <message-bundle>messages</message-bundle>
  <locale-config>
   <default-locale>pt_BR</default-locale>
   <supported-locale>pt_BR</supported-locale>
   <supported-locale>en_US</supported-locale>
  </locale-config>
  <!--		<resource-bundle>
			<base-name>messages</base-name>
			<var>msgs</var>
		</resource-bundle>
		<locale-config>
			<default-locale>pt_BR</default-locale>
			<supported-locale>pt_BR</supported-locale>
			<supported-locale>en_US</supported-locale>
		</locale-config>
		<message-bundle>messages</message-bundle>-->
 </application>
</faces-config>
faces-managed-beans.xml
<managed-bean>
  <managed-bean-name>relatorioAgrupFc</managed-bean-name>
  <managed-bean-class>br.com.sisconf.relatorio.GerarRelAgrupamentoPedido</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>

 <managed-bean>
  <managed-bean-name>relatorioEstoqueProdutoFc</managed-bean-name>
  <managed-bean-class>br.com.sisconf.relatorio.GerarRelEstoqueProduto</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>

 <managed-bean>
  <managed-bean-name>relatorioPedidoFc</managed-bean-name>
  <managed-bean-class>br.com.sisconf.relatorio.GerarRelPedido</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>

  <managed-bean>
  <managed-bean-name>relatorioComissaoFc</managed-bean-name>
  <managed-bean-class>br.com.sisconf.relatorio.GerarRelComissao</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>

 <managed-bean>
  <managed-bean-name>relatorioGrupoProdutoFc</managed-bean-name>
  <managed-bean-class>br.com.sisconf.relatorio.GerarRelGrupoProduto</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>

 <managed-bean>
  <managed-bean-name>relatorioContasPagarFc</managed-bean-name>
  <managed-bean-class>br.com.sisconf.relatorio.GerarRelContasPagar</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
 </managed-bean>
[color=red]E e assim que carrego as Lista direto do get no DataModel isso no Facade a lista chama esse método so que todo consulta e feita duas vezes [/color]
public DataModel getDataModelListaPedidoPopup() throws Exception {
		
		FacesContext facesContext = FacesContext.getCurrentInstance();
		HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();
		HttpSession session = request.getSession();
		
		Usuario usuario = (Usuario) session.getAttribute("usuario");
		
		
		pedidoBean = new PedidoBean();
		int totalListPedidos = pedidoBean.count(pedidoFiltro,usuario);
		
		pedidoBean = new PedidoBean();
		pedidos = pedidoBean.listByCriteriaDemanda(	getDataTableListaPedidoPopup().getFirst(), 
													( getDataTableListaPedidoPopup().getRows() != 0 ? getDataTableListaPedidoPopup().getRows() : 10), 
													pedidoFiltro,
													usuario);
		if (pedidos != null &&  pedidos.size() > 0 ) {
			dataModelListaPedidoPopup = new PagedDataModel(pedidos, totalListPedidos);
		} else {
			dataModelListaPedidoPopup = null;			
		}
		
		return dataModelListaPedidoPopup;
	}
Criado 30 de abril de 2011
Ultima resposta 7 de out. de 2011
Respostas 3
Participantes 4