在p:向导中填充输入后在org.primefaces.component.wizard.Wizard.processDecodes上的java.lang.NullPointerException

时间:2015-06-07 14:38:08

标签: jsf-2 primefaces nullpointerexception wizard

我在部署到Tomcat 8的Mojarra 2.2.4应用程序中使用了PrimeFaces 5.2 <p:wizard>。当我没有在文本字段中输入输入时,它正常工作。但是当我向textfields输入一些值时,它会抛出以下异常。

  

Jun 07,2015 6:59:33 PM com.sun.faces.context.PartialViewContextImpl processPartial   信息:java.lang.NullPointerException   显示java.lang.NullPointerException

仅当我输入文本字段并单击下一个按钮时才会抛出此异常。除了下一个按钮正常工作。

以下是观点:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core"
template="/templates/template.xhtml">

<ui:define name="metadata">
</ui:define>
<ui:define name="content">

    <h:form>



        <p:growl autoUpdate="true" />

        <p:wizard flowListener="#{employeePersonalDetails.onFlowProcess}">


            <p:tab id="personaldetailstab" title="Personal details"
                titleStyle="font-size:16px;">

                <p:panel>

                    <h:panelGrid columns="2" cellspacing="5">

                        <p:outputLabel for="employeecode" value="Employee     code : " />
                        <p:column>
                            <p:inputText id="employeecode" maxlength="100"     size="7"
                                autocomplete="off"
                                value="#    {employeePersonalDetails.employee.employeeCode}" />
                        </p:column>

                        <p:outputLabel for="fullname" value="Full name : "     />
                        <p:column>
                            <p:inputText id="fullname" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employee.fullName}" />
                        </p:column>

                        <p:outputLabel for="firstname" value="First name : " />
                        <p:column>
                            <p:inputText id="firstname" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employee.firstName}" />
                        </p:column>

                        <p:outputLabel for="middlename" value="Middle name : " />
                        <p:column>
                            <p:inputText id="middlename" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employee.middleName}" />
                        </p:column>

                        <p:outputLabel for="lastname" value="Last name : " />
                        <p:column>
                            <p:inputText id="lastname" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employee.lastName}" />
                        </p:column>

                        <p:outputLabel for="religion" value="Religion : " />
                        <p:column>
                            <p:inputText id="religion" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employee.religion}" />
                        </p:column>

                        <p:outputLabel for="nicno" value="NIC no : " />
                        <p:column>
                            <p:inputText id="nicno" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employee.nicNo}" />
                        </p:column>



                        <p:outputLabel for="dateofbirth" value="Date of Birth :" />
                        <p:column>
                            <p:calendar id="dateofbirth"
                                value="#{employeePersonalDetails.employee.empDateOfBirth}"
                                maxlength="100" size="25" autocomplete="off">
                                <p:ajax event="dateSelect"
                                    listener="#{employeePersonalDetails.onDateSelect}"
                                    update="dateofbirthmsgs" />
                            </p:calendar>
                            <p:growl id="dateofbirthmsgs" showDetail="true" />
                        </p:column>


                        <p:outputLabel for="gender" value="Gender : " />
                        <p:column>


                            <p:inputText id="gender" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employee.gender}" />
                        </p:column>

                        <p:outputLabel for="natinality" value="Natinality : " />
                        <p:column>
                            <p:inputText id="natinality" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employee.natinality}" />
                        </p:column>


                        <p:outputLabel value="Upload your Image here : " />
                        <p:column>
                            <p:fileUpload id="uploademployeeimage"
                                fileUploadListener="#{fileUploadController.handleFileUpload}"
                                mode="advanced" update="messages" label="Choose a file"
                                sizeLimit="1048576" allowTypes="/(\.|\/)(gif|jpe?g|png)$/"
                                invalidSizeMessage="The maximum file size allowed is 1 Megabyte !"
                                invalidFileMessage="You are allowed to upload only images !" />
                            <p:growl id="messages" showDetail="true" sticky="true" />
                        </p:column>

                    </h:panelGrid>
                </p:panel>
            </p:tab>





            <p:tab id="contactdetailstab" title="Contact details"
                titleStyle="font-size:16px;">

                <p:panel>

                    <h:panelGrid columns="2" cellspacing="5">

                        <p:outputLabel for="primaryaddressone" value="Primary Address : " />
                        <p:column>
                            <p:inputText id="primaryaddressone" maxlength="100" size="25"
                                placeholder="Address 1" autocomplete="off"
                                value="#{employeePersonalDetails.employeeContactDetails.addressOne}" />
                        </p:column>
                        <p:column></p:column>

                        <p:column>
                            <p:inputText id="primaryaddresstwo" maxlength="100" size="25"
                                placeholder="Address 2" autocomplete="off"
                                value="#{employeePersonalDetails.employeeContactDetails.addressTwo}" />
                        </p:column>

                        <p:outputLabel for="city" value="City : " />
                        <p:column>
                            <p:inputText id="city" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeeContactDetails.city}" />
                        </p:column>

                        <p:outputLabel for="zip" value="Zip : " />
                        <p:column>
                            <p:inputText id="zip" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeeContactDetails.zip}" />
                        </p:column>

                        <p:outputLabel for="country" value="Country : " />
                        <p:column>
                            <p:inputText id="country" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeeContactDetails.country}" />
                        </p:column>

                        <p:outputLabel for="emailaddress" value="Email Address : " />
                        <p:column>
                            <p:inputText id="emailaddress" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeeContactDetails.email}" />
                        </p:column>

                        <p:outputLabel for="primarytelephoneno"
                            value="Primary Telephone No : " />
                        <p:column>
                            <p:inputText id="primarytelephoneno" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeeContactDetails.primaryTelNo}" />
                        </p:column>


                        <p:outputLabel for="personalmobileno"
                            value="Personal Mobile No : " />
                        <p:column>
                            <p:inputText id="personalmobileno" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeeContactDetails.personalMobileNo}" />
                        </p:column>

                        <p:outputLabel for="officialmobileno"
                            value="Official Mobile No : " />
                        <p:column>
                            <p:inputText id="officialmobileno" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeeContactDetails.officialMobileNo}" />
                        </p:column>

                    </h:panelGrid>
                </p:panel>


            </p:tab>





            <p:tab id="employeementdetailstab" title="Employeement details"
                titleStyle="font-size:16px;">


                <p:panel>

                    <h:panelGrid columns="2" cellspacing="5">

                        <p:outputLabel for="jobtitle" value="Job Title : " />
                        <p:column>
                            <p:inputText id="jobtitle" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeementDetails.jobTitle}" />
                        </p:column>

                        <p:outputLabel for="departmentcode" value="Department code : " />
                        <p:selectOneMenu id="departmentcode" value="#{departmentDetails.department.departmentCode}"
                            style="width:170px" >
                            <f:selectItem itemLabel="Select Department" itemValue="" noSelectionOption="true" />
                            <f:selectItems value="#{departmentDetails.departmentCodes}" />
                        </p:selectOneMenu>

                        <p:outputLabel for="stafftype" value="Staff Type : " />
                        <p:column>
                            <p:inputText id="stafftype" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeementDetails.staffType}" />
                        </p:column>

                        <p:outputLabel for="activateddate" value="Activated Date :" />
                        <p:column>
                            <p:calendar id="activateddate"
                                value="#{employeePersonalDetails.employeementDetails.activatedDate}"
                                maxlength="100" size="25" autocomplete="off">
                                <p:ajax event="dateSelect"
                                    listener="#{employeePersonalDetails.onDateSelect}"
                                    update="msgs" />
                            </p:calendar>
                            <p:growl id="msgs" showDetail="true" />
                        </p:column>

                        <p:outputLabel for="active" value="Active :" />
                        <p:column>
                            <h:selectBooleanCheckbox id="active"
                                value="#{employeePersonalDetails.employeementDetails.employeeActiveStatus}" />
                        </p:column>

                    </h:panelGrid>
                </p:panel>


            </p:tab>

            <p:tab id="otherinformationtab" title="Other information"
                titleStyle="font-size:16px;">
                <p:panel>

                    <h:panelGrid columns="2" cellspacing="5">

                        <p:outputLabel for="salaryamount" value="Salary Amount : " />
                        <p:column>
                            <p:inputText id="salaryamount" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeeOtherDetails.salaryAmount}" />
                        </p:column>

                        <p:outputLabel for="newepfno" value="New EPF No : " />
                        <p:column>
                            <p:inputText id="newepfno" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeeOtherDetails.epfNo}" />
                        </p:column>

                        <p:outputLabel for="newetfno" value="New ETF No : " />
                        <p:column>
                            <p:inputText id="newetfno" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeeOtherDetails.etfNo}" />
                        </p:column>

                        <p:outputLabel for="remarks" value="Remarks : " />
                        <p:column>
                            <p:inputTextarea id="remarks" maxlength="100" size="25"
                                autocomplete="off"
                                value="#{employeePersonalDetails.employeeOtherDetails.remarks}" />
                        </p:column>


                        <span style="display: block; text-align: right"> <p:commandButton
                                value="Save"
                                action="#{employeePersonalDetails.saveEmployeeDetails}" />
                        </span>
                    </h:panelGrid>
                </p:panel>

            </p:tab>

        </p:wizard>

    </h:form>

</ui:define>
</ui:composition>

这是支持bean:

package com.wisdom.empmngsys.controller;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import org.primefaces.event.FlowEvent;
import org.primefaces.event.SelectEvent;

import com.wisdom.empmngsys.model.Employee;
import com.wisdom.empmngsys.model.EmployeeContactDetails;
import com.wisdom.empmngsys.model.EmployeeOtherDetails;
import com.wisdom.empmngsys.model.EmployeementDetails;

@ManagedBean(name="employeePersonalDetails")
@SessionScoped
public class EmployeePersonalDetails implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = 323609630411955966L;

private Employee employee = new Employee();

private EmployeeContactDetails employeeContactDetails = new     EmployeeContactDetails();

private EmployeementDetails employeementDetails = new EmployeementDetails();

private EmployeeOtherDetails employeeOtherDetails = new EmployeeOtherDetails(); 


public Employee getEmployee() {
    return employee;
}

public void setEmployee(Employee employee) {
    this.employee = employee;
}


public EmployeeContactDetails getEmployeeContactDetails() {
    return employeeContactDetails;
}

public void setEmployeeContactDetails(
        EmployeeContactDetails employeeContactDetails) {
    this.employeeContactDetails = employeeContactDetails;
}


public EmployeementDetails getEmployeementDetails() {
    return employeementDetails;
}

public void setEmployeementDetails(EmployeementDetails employeementDetails) {
    this.employeementDetails = employeementDetails;
}


public EmployeeOtherDetails getEmployeeOtherDetails() {
    return employeeOtherDetails;
}

public void setEmployeeOtherDetails(EmployeeOtherDetails employeeOtherDetails) {
    this.employeeOtherDetails = employeeOtherDetails;
}

public void onDateSelect(SelectEvent event) {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
        facesContext.addMessage(null, new      FacesMessage(FacesMessage.SEVERITY_INFO, "Date Selected",      format.format(event.getObject())));
    }


public String onFlowProcess(FlowEvent event) {

        return event.getNewStep();
}

public void saveEmployeeDetails(){

        System.out.println("Inside the saveEmployeeDetails...");

        employee.saveEmployee(employee);
        System.out.println("DONE the saveEmployeeDetails...");
           employeeContactDetails.saveEmployeeContactDetail(employeeContactDetails);
        System.out.println("DONE the saveEmployeeContactDetail...");
        employeementDetails.saveEmployeementDetails(employeementDetails);
        System.out.println("DONE the saveEmployeementDetails...");
        employeeOtherDetails.saveEmployeeOtherDetails(employeeOtherDetails);
        System.out.println("DONE the saveEmployeeOtherDetails...");
        System.out.println("DONE SAVE...");
}

}

这是模型:

package com.wisdom.empmngsys.model;

import java.io.Serializable;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

import com.wisdom.empmngsys.persistence.DBConnection;

public class Employee implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = -908408323852847362L;
private Integer id;
private String employeeCode;
private String fullName;
private String firstName;
private String middleName;
private String lastName;
private String religion;
private String nicNo ;
private String empDateOfBirth;
private String gender;
private String natinality;



public Employee() {
    super();
}



public Employee(Integer id, String employeeCode, String fullName,
        String firstName, String middleName, String lastName,
        String religion, String nicNo, String empDateOfBirth,
        String gender, String natinality) {
    super();
    this.id = id;
    this.employeeCode = employeeCode;
    this.fullName = fullName;
    this.firstName = firstName;
    this.middleName = middleName;
    this.lastName = lastName;
    this.religion = religion;
    this.nicNo = nicNo;
    this.empDateOfBirth = empDateOfBirth;
    this.gender = gender;
    this.natinality = natinality;
}





public Integer getId() {
    return id;
}



public void setId(Integer id) {
    this.id = id;
}



public String getEmployeeCode() {
    return employeeCode;
}



public void setEmployeeCode(String employeeCode) {
    this.employeeCode = employeeCode;
}



public String getFullName() {
    return fullName;
}



public void setFullName(String fullName) {
    this.fullName = fullName;
}



public String getFirstName() {
    return firstName;
}



public void setFirstName(String firstName) {
    this.firstName = firstName;
}



public String getMiddleName() {
    return middleName;
}



public void setMiddleName(String middleName) {
    this.middleName = middleName;
}



public String getLastName() {
    return lastName;
}



public void setLastName(String lastName) {
    this.lastName = lastName;
}



public String getReligion() {
    return religion;
}



public void setReligion(String religion) {
    this.religion = religion;
}



public String getNicNo() {
    return nicNo;
}



public void setNicNo(String nicNo) {
    this.nicNo = nicNo;
}



public String getEmpDateOfBirth() {
    return empDateOfBirth;
}



public void setEmpDateOfBirth(String empDateOfBirth) {
    this.empDateOfBirth = empDateOfBirth;
}



public String getGender() {
    return gender;
}



public void setGender(String gender) {
    this.gender = gender;
}



public String getNatinality() {
    return natinality;
}



public void setNatinality(String natinality) {
    this.natinality = natinality;
}



public void saveEmployee(Employee employee){

    System.out.println("Inside the saveEmployee method...");

    ResultSet resultSet;
    Statement stmt;

    id = employee.getId();
    employeeCode = employee.getEmployeeCode();
    fullName = employee.getFullName();
    firstName = employee.getFirstName();
    middleName = employee.getMiddleName();
    lastName = employee.getLastName();
    religion = employee.getReligion();
    nicNo = employee.getNicNo();
    empDateOfBirth = employee.getEmpDateOfBirth();
    gender = employee.getGender();
    natinality = employee.getNatinality();
    Integer lastEmpId = null;

    System.out.println(empDateOfBirth);

    try{

        System.out.println("Inside the try block saveEmployee method && before insert the employee details...");

        stmt = DBConnection.getConnection().createStatement();

        String sqlquerylastnumber = "SELECT emp_id FROM "+"wisdom"+".employee ORDER BY emp_id DESC LIMIT 1;";
/*          
        resultSet = stmt.executeQuery(sqlquerylastnumber);

        while(resultSet.next()){
            lastEmpId = resultSet.getInt(1);
        }*/

        String sqlquery = "SELECT * FROM "+"wisdom"+".insertemployeedetails('"+employeeCode+"','"+fullName+"',"
                + "'"+firstName+"','"+middleName+"','"+lastName+"', '"+religion+"', '"+nicNo+"', '"+empDateOfBirth+"',"
                        + "'"+gender+"', '"+natinality+"' );";
        stmt.executeQuery(sqlquery);

        System.out.println("Employee details insert done inside the try block...");
    }
 catch (SQLException e) {
    System.out.println("SQLException in Create statement time...." + e);
    e.printStackTrace();
 }
}



}

这是例外:

Jun 07, 2015 6:59:33 PM com.sun.faces.context.PartialViewContextImpl processPartial
INFO: java.lang.NullPointerException
java.lang.NullPointerException
at org.primefaces.component.wizard.Wizard.processDecodes(Wizard.java:179)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:550)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1729)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:399)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:263)
at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:927)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

Jun 07, 2015 6:59:33 PM com.sun.faces.lifecycle.ApplyRequestValuesPhase execute
WARNING: java.lang.NullPointerException
javax.faces.FacesException: java.lang.NullPointerException
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:270)
at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:60)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:927)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
at org.primefaces.component.wizard.Wizard.processDecodes(Wizard.java:179)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:550)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1729)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1740)
at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:399)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:263)
... 28 more

Jun 07, 2015 6:59:33 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
SEVERE: java.lang.NullPointerException
at org.primefaces.component.wizard.Wizard.processDecodes(Wizard.java:179)

这是如何引起的?如何解决?

0 个答案:

没有答案