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;
}
}