Datatable funciona na aplicação local mas não funciona quando implemento no servidor Glassfish

5 respostas
H

A pagina abaixo funciona nomalmente na aplicação quando rodo no netbeans usando o Glassfish instalado na maquina que estou desenvolvendo, mas quando eu coloco o .war da aplicação no Servidor Glassfish da rede quando vou abrir a pagina ramais apresenta o seguinte erro

exception

javax.servlet.ServletException: /ramais.xhtml @13,108 value="#{tableBean.ramais}": Target Unreachable, identifier ‘tableBean’ resolved to null
root cause

javax.el.PropertyNotFoundException: /ramais.xhtml @13,108 value="#{tableBean.ramais}": Target Unreachable, identifier ‘tableBean’ resolved to null

pagina ramais.xhtml

<?xml version='1.0' encoding='ISO-8859-1' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui">
    <ui:decorate template="/tema/padrao.xhtml">
        <ui:define name="centro">                                    
            <h:form prependId="false" > 
                <p:commandButton id="btImprimir" value="Imprimir" image="ui-icon-wrench" actionListener="#{tableBean.PDF}" ajax="false" onclick="form.target='_blank'" />

                <p:dataTable id="basic" var="ramal" value="#{tableBean.ramais}" paginator="true" rows="10" style="text-align: center">
                    <p:column id="modelHeader">
                        <f:facet name="header">
                                SETOR
                        </f:facet>
                        <h:outputText value="#{ramal.setor}" />
                    </p:column>

                    <p:column>
                        <f:facet name="header">
                                RESPONSÁVEL
                        </f:facet>
                        <h:outputText value="#{ramal.responsavel}" />
                    </p:column>

                    <p:column>
                        <f:facet name="header">
                                RAMAL
                        </f:facet>
                        <h:outputText value="#{ramal.numero}" />
                    </p:column>

                </p:dataTable>
            </h:form>
        </ui:define>
    </ui:decorate>
</html>
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

@ManagedBean(name="tableBean")
@SessionScoped  
public class TableBean implements Serializable{

    private List<Ramal> ramais;
    private Ramal ramal;
    
    JasperPrint jasperPrint;
        
    public TableBean() {
        ramais = new ArrayList<Ramal>();
        
        ramal = new Ramal(240,"TESTE1","");             
        ramais.add(ramal);
        ramal = new Ramal(242,"TESTE2","");                     
        ramais.add(ramal);
        ramal = new Ramal(243,"TESTE3","");                     
        ramais.add(ramal);
        ramal = new Ramal(237,"TESTE4","");                     
        ramais.add(ramal);
        ramal = new Ramal(207,"TESTE5","");                     
        ramais.add(ramal);
    }
    
    public List<Ramal> getRamais() {
        return ramais;
    } 

    /* IMPRESSAO USANDO JASPERREPORTS */            
    public void init() throws JRException{       
        JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(ramais);
        String  reportPath=  FacesContext.getCurrentInstance().getExternalContext().getRealPath("/relatorios/ramais.jasper");        
        jasperPrint = JasperFillManager.fillReport(reportPath, new HashMap(), beanCollectionDataSource);
    }

    public void PDF(ActionEvent actionEvent) throws IOException, JRException{
        init();
        HttpServletResponse httpServletResponse = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        httpServletResponse.setHeader("Content-disposition", "inline;filename=report1.pdf");        
        ServletOutputStream servletOutputStream = httpServletResponse.getOutputStream();                
        JasperExportManager.exportReportToPdfStream(jasperPrint, servletOutputStream);        
        FacesContext.getCurrentInstance().responseComplete();
    }    
    
}
public class Ramal {
    
    private int numero;
    private String setor;
    private String responsavel;

    public Ramal(int numero, String setor, String responsavel) {
        this.numero = numero;
        this.setor = setor;
        this.responsavel = responsavel;
    }
    
    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public String getResponsavel() {
        return responsavel;
    }

    public void setResponsavel(String responsavel) {
        this.responsavel = responsavel;
    }

    public String getSetor() {
        return setor;
    }

    public void setSetor(String setor) {
        this.setor = setor;
    }
  
}

5 Respostas

KamikazeBr

Provavelmente seja isso…

H

não entendi

fabiozanardi

você está usando maven? se nao estiver o link acima não vai ajudar

H

estou usando JSF 2 + Primefaces, naum estou usando faces-config.

O problema esta ocorrendo quando transfiro aplicação pro servidor glassfish fora da minha maquina de deselvolvimento. Outras paginas da aplicação funcionam normalmente.

Obrigado.

fabiozanardi

Você pode postar um zip com seu projeto para eu dar 1 olhada?

Criado 18 de maio de 2012
Ultima resposta 19 de mai. de 2012
Respostas 5
Participantes 3