Tenho uma aplicação web que está dando esse erro ...
Em outros posts daqui do forum vi que esse erro é comum quando não se instancia a classe ...
Mas eu instancio a class no construtor do meu mb ....
E mesmo assim o erro persiste ...
public class AgendaPeritoMB {
private Tabagendaperito agendaPerito;
private List<Tabagendaperito>agendaPeritoList;
private TabperitosPK tabPeritos;
public AgendaPeritoMB() {
this.agendaPerito=new Tabagendaperito();
this.tabPeritos=new TabperitosPK();
}
//gets e sets omitidos
//outros metodos omitidos ...
public class AreaPeritoMB {
private Tabareaperito areaPerito;
private List<SelectItem> selectItems;
private List<Tabareaperito> areaPeritoList;
private TabperitosPK tabPeritos;
public AreaPeritoMB() {
this.areaPerito=new Tabareaperito();
fillSelectItems();
this.tabPeritos =new TabperitosPK();
}
gets e sets omitidos
outros metodos omitidos tb
public class PeritoMB {
/**
* Creates a new instance of PeritoMB
*/
private Tabagendaperito agendaPerito;
private Tabareaperito areaPerito;
private Tabperitos perito ;
private List<Tabperitos> peritos;
private List<SelectItem> selectItems;
private TabperitosPK tabPeritos;
private List<SelectItem>selectItemsAreaPerito;
public PeritoMB() {
this.tabPeritos=new TabperitosPK();
this.perito=new Tabperitos();
fillSelectItems();
}
gets e sets omitidos e metodos posteriores tb ....
As minhas classes foram geradas pelo netbeans com o banco ...
Nesse projeto tenho uma classe com uma chave primaria composta ...
@Embeddable
public class TabperitosPK implements Serializable {
@Basic(optional = false)
@Column(name = "AreaPerito")
private String areaPerito;
@Basic(optional = false)
@Column(name = "Nome")
private String nome;
public TabperitosPK() {
}
public TabperitosPK(String areaPerito, String nome) {
this.areaPerito = areaPerito;
this.nome = nome;
}
public String getAreaPerito() {
return areaPerito;
}
public void setAreaPerito(String areaPerito) {
this.areaPerito = areaPerito;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Override
public int hashCode() {
int hash = 0;
hash += (areaPerito != null ? areaPerito.hashCode() : 0);
hash += (nome != null ? nome.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof TabperitosPK)) {
return false;
}
TabperitosPK other = (TabperitosPK) object;
if ((this.areaPerito == null && other.areaPerito != null) || (this.areaPerito != null && !this.areaPerito.equals(other.areaPerito))) {
return false;
}
if ((this.nome == null && other.nome != null) || (this.nome != null && !this.nome.equals(other.nome))) {
return false;
}
return true;
}
@Override
public String toString() {
return "VO.TabperitosPK[ areaPerito=" + areaPerito + ", nome=" + nome + " ]";
}
}
<tr><td>
<label for="nomePeritoAgendaSegunda">Nome:</label>
</td><td>
<h:selectOneMenu id="nome_perito_agenda_segunda" value="#{ peritoMB.perito.tabperitosPK.nome}">
<f:selectItems value="#{peritoMB.selectItems}" />
</h:selectOneMenu>
</td></tr>
<faces-config version="1.2"
xmlns="http://java.sun.com/xml/ns/javaee"
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">
<managed-bean>
<managed-bean-name>usuarioMB</managed-bean-name>
<managed-bean-class>MB.UsuarioMB</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>loginMB</managed-bean-name>
<managed-bean-class>MB.LoginMB</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>peritoMB</managed-bean-name>
<managed-bean-class>MB.PeritoMB</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/index.jsp</from-view-id>
<navigation-case>
<from-outcome>Sucesso</from-outcome>
<to-view-id>/retorno_index.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/retorno_index.jsp</from-view-id>
<navigation-case>
<from-outcome>entrar</from-outcome>
<to-view-id>/principal.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>areaPeritoMB</managed-bean-name>
<managed-bean-class>MB.AreaPeritoMB</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/cadastrar_perito.jsp</from-view-id>
<navigation-case>
<from-outcome>listar</from-outcome>
<to-view-id>/listar_perito.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>agendaPeritoMB</managed-bean-name>
<managed-bean-class>MB.AgendaPeritoMB</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/agenda_perito.jsp</from-view-id>
<navigation-case>
<from-outcome>buscar</from-outcome>
<to-view-id>/listar_agenda_perito.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>