[jboss-user] [JBoss Seam] - Double click problem . Seam-Version: 1.2.1.GA

lilianas do-not-reply at jboss.com
Sun Aug 5 20:37:05 EDT 2007


Hi:
I am using Seam-Version: 1.2.1.GA.
I am using PageFlow. I have a problem when i press a lot of time the next buttom , i have the following error

*****************
2007-08-06 09:15:04 StandardWrapperValve[FacesServlet]: Servlet.service() for servlet FacesServlet threw exception
javax.faces.el.EvaluationException: /normal-application.jspx @13,72 rendered="#{normalCreditApplication.serviceProvider}": Exception getting value of property serviceProvider of base of type : com.yoogalu.ncf.web.seam.bean.NormalCreditApplication_$$_javassist_2

Caused by: org.jboss.seam.NoConversationException: no long-running conversation for @Conversational bean: normalCreditApplication

**********************

I read that with  Seam-Version: 1.2.1.GA i will not have problem with double click. Can you give some suggestion? . This problem only occur when i press the buttom a lot of times.


Thank for your help



It is my pageflow


<pageflow-definition xmlns="http://jboss.com/products/seam/pageflow"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://jboss.com/products/seam/pageflow http://jboss.com/products/seam/pageflow-1.2.xsd"
	name="normalCreditApplicationFlow">
	<start-state>
	
	</start-state>
	
	<page  name="normal" view-id="/normal-application.jspx"
		back="disabled">
		
		
		
	
	
	
	
		
		
		
	
	
	
		
		
		
	

	
		
		
		
	
	
	
		
			
				
					
		
		
	

 <page name="normalSerialNumberPrint" view-id="/normal-serialnumber-print.jspx"
		back="enabled">
		
		
		
		
		
		
		
	

	




	
		
			
			
		
	
		
	
	
		<page name="normalListPossibleDebtors"
		view-id="/list-existing-debtors.jspx" back="disabled">
		
		
		
			
			
		
		
				
		
		
			
		
	
	
<page name="normalListPossibleDebtorsPrint"
		view-id="/list-existing-debtors.jspx" back="disabled">
		
		
		
			
			
		
		
				
		
		
			
		
	

	<page name="toEditApplication" view-id="/loan-application.jspx">
		
	

	<page name="salary" view-id="/salaryApplication.jspx"
		back="disabled">
		
		<end-conversation />
	

</pageflow-definition>



My bean :

package com.yoogalu.ncf.web.seam.bean;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.event.ValueChangeEvent;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Begin;
import org.jboss.seam.annotations.Conversational;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.jboss.seam.core.FacesMessages;

import com.yoogalu.framework.FrameworkConstants;
import com.yoogalu.ncf.core.cache.CompanyCache;
import com.yoogalu.ncf.core.cache.DealerCache;
import com.yoogalu.ncf.core.cache.ServiceProviderCache;
import com.yoogalu.ncf.core.cache.StoreCache;
import com.yoogalu.ncf.core.entity.AppCustomer;
import com.yoogalu.ncf.core.entity.Application;
import com.yoogalu.ncf.core.entity.Company;
import com.yoogalu.ncf.core.entity.Customer;
import com.yoogalu.ncf.core.entity.Dealer;
import com.yoogalu.ncf.core.entity.Invoice;
import com.yoogalu.ncf.core.entity.ServiceProvider;
import com.yoogalu.ncf.core.entity.Store;
import com.yoogalu.ncf.core.util.AppContext;
import com.yoogalu.ncf.web.seam.Tokens;
import com.yoogalu.ncf.web.seam.Util;
import com.yoogalu.ncf.web.seam.bean.UserCredentials;

@Name("normalCreditApplication")
@Scope(ScopeType.CONVERSATION)
@Conversational
public class NormalCreditApplication implements Serializable {

    private static final long serialVersionUID = FrameworkConstants.SERIAL_VERSION_UID;

    private static final int MAX_SERIAL = 999;

    private static final String APPLICATIONREF = "applicationRef";

    private static final String APPLICANTNAME1 = "applicantName1";

    private static final String APPLICANTNAME2 = "applicantName2";

    private static final String SERIALNO = "serialNo";

    private static final String DEALERNAME = "dealerName";

    private static final String APPFEE = "appFee";

    private static final String APPSTATUS_NEWAPPLICATION = "N";

    private static final String NAMETEMPLATE = "template";

    private static final String PRIVACY = "privacy";

    private static final String ONE = "One";

    private static final String TWO = "Two";

    private static final String APPLICATIONFEE = "applicationFee";

    private static final String NAMEFIELD1VALUE = "________________________________";

    private static final String DATEFIELD1VALUE = "___/___/_____";

    private static final String DATETEXT1VALUE = "Date";

    private static final String NAMEFIELD1 = "nameField1";

    private static final String DATEFIELD1 = "dateField1";

    private static final String DATETEXT1 = "dateText1";

    private static final String NAMEFIELD2 = "nameField2";

    private static final String DATEFIELD2 = "dateField2";

    private static final String DATETEXT2 = "dateText2";

    private Dealer dealer;

    private String surnameSearch;

    private String firstNameSearch;


    private String serialNumberUser;

    private List listPossibleDebtors;

    private boolean serviceProvider;

    private boolean secondApplicant;

    private String idServiceProvider;

    private String companyName;

    private String storeName;

    private String dealerName;
    
    private Integer numRows;
    private boolean flgPrint;
    private AutoCompleteLocation autoCompleteLocation ;
    @Out(value = Tokens.entityLookup4Application, scope = ScopeType.CONVERSATION)
    private Application application;

    @Out(value = "mapPrint", scope = ScopeType.CONVERSATION, required = false)
    private transient Map<String, String> mapPrint;

    @In(value = Tokens.bean4UserCredentials, scope = ScopeType.SESSION)
    private transient UserCredentials userCredentials;

    @DataModelSelection(value = "listPossibleDebtors")
    private Customer customerSelected;

    @In
    private FacesMessages facesMessages;

    @Begin(join = true, pageflow = "normalCreditApplicationFlow")
    public void beginStandard() {
        initApplication();

    }

    @Begin(join = true, pageflow = "normalCreditApplicationFlow")
    public void beginServProv() {
        initApplication();
        setServiceProvider(true);

        String serviceProviderContractType = Util.getBundledMessageResource(Tokens.SERVICEPROVIDERCONTRACTTYPE);
        getApplication().setContractTypeCode(serviceProviderContractType);

    }

    private void initApplication() {
        this.autoCompleteLocation = new AutoCompleteLocation(); 
        
        this.application = new Application();
        this.application.setApplicationDate(new Timestamp(System.currentTimeMillis()));
        this.application.setAppStatus(APPSTATUS_NEWAPPLICATION);
        Customer firstCustomer = new Customer();
        Customer secondCustomer = new Customer();
        AppCustomer firstAppCustomer = new AppCustomer();
        AppCustomer secondAppCustomer = new AppCustomer();
        Invoice invoice = new Invoice();
        firstAppCustomer.setCustomer(firstCustomer);
        firstAppCustomer.setApplicantNo(new Integer(1));

        secondAppCustomer.setCustomer(secondCustomer);
        secondAppCustomer.setApplicantNo(new Integer(2));
        this.application.setPrimaryInvoice(invoice);
        this.application.setApplicant1(firstAppCustomer);
        this.application.setApplicant2(secondAppCustomer);

        if (!userCredentials.isAllStoresAccessor()) {

            this.autoCompleteLocation.setStoreSel(Util.getStoreCodeDashStoreName(userCredentials.getStoreId()));
            this.autoCompleteLocation.setCompanySel(Util.getCompanyCodeDashStoreName(userCredentials.getCompanyId()));
        }
    }

    public void searchPossibleDebtorsbyUser() {
        final List customers;
        customers = Util.getApplicationService().searchCustomerByName(getFirstNameSearch(), getSurnameSearch());
        setListPossibleDebtors(customers);
        this.numRows = customers.size();
    }

    public void searchPossibleDebtorsbySystem() {
        final List customers;
        customers = Util.getApplicationService().searchCustomerByName(
                this.getApplication().getApplicant1().getCustomer().getFirstName(),
                this.getApplication().getApplicant1().getCustomer().getSurname());
        setFirstNameSearch(this.getApplication().getApplicant1().getCustomer().getFirstName());
        setSurnameSearch(this.getApplication().getApplicant1().getCustomer().getSurname());
        setListPossibleDebtors(customers);
        this.numRows = customers.size();
    }

    public void setMapPrint() {

        String nameFile = null;
        String applicationFee = null;
        String valueApplicationFee = null;
        String filePath = null;
        mapPrint = new HashMap<String, String>();
        // Obtain the name of the pdf template

        if (isSecondApplicant()) {
            nameFile = PRIVACY + TWO;

        } else {
            nameFile = PRIVACY + ONE;
        }
        if (getApplication().getContractTypeCode() != null) {
            nameFile = nameFile + getApplication().getContractTypeCode().toUpperCase();
        }

        try {
            filePath = Util.getBundledMessageResource(nameFile);
        } catch (Exception e) {
            filePath = null;
        }

        if (filePath == null) {
            if (getApplication().getContractTypeCode() != null) {
                nameFile = PRIVACY + getApplication().getContractTypeCode().toUpperCase();
            }
            try {
                filePath = Util.getBundledMessageResource(nameFile);
            } catch (Exception e) {
                filePath = null;
            }
        }
        // Obtain the value of applicationFee

        if (getApplication().getContractTypeCode() != null) {
            applicationFee = APPLICATIONFEE + getApplication().getContractTypeCode().toUpperCase();

        }
        try {
            valueApplicationFee = Util.getBundledMessageResource(applicationFee);
        } catch (Exception e) {
            valueApplicationFee = null;
        }
        if (valueApplicationFee == null) {
            try {
                valueApplicationFee = Util.getBundledMessageResource(APPLICATIONFEE);
            } catch (Exception e) {
                valueApplicationFee = null;
            }
        }

        // Set the map to print
        this.mapPrint.put(APPLICATIONREF, this.getDealer().getFranchiseCode() + Tokens.SPACE + Tokens.DASH + Tokens.SPACE
                + getApplication().getPrimaryInvoice().getInvoiceNo().toString());
        this.mapPrint.put(APPLICANTNAME1, getApplication().getApplicant1().getCustomer().getFullName());
        this.mapPrint.put(APPLICANTNAME2, getApplication().getApplicant2().getCustomer().getFullName());
        this.mapPrint.put(SERIALNO, getApplication().getSerialNo());

        this.mapPrint.put(APPFEE, valueApplicationFee);
        this.mapPrint.put(NAMETEMPLATE, filePath);


        if (serviceProvider) {

            String nameField2 = Tokens.SPACE;
            String dateField2 = Tokens.SPACE;
            String dateText2 = Tokens.SPACE;

            if (secondApplicant) {
                nameField2 = NAMEFIELD1VALUE;
                dateField2 = DATEFIELD1VALUE;
                dateText2 = DATETEXT1VALUE;
                // }
            }
            this.mapPrint.put(NAMEFIELD1, NAMEFIELD1VALUE);
            this.mapPrint.put(DATEFIELD1, DATEFIELD1VALUE);
            this.mapPrint.put(DATETEXT1, DATETEXT1VALUE);
            this.mapPrint.put(NAMEFIELD2, nameField2);
            this.mapPrint.put(DATEFIELD2, dateField2);
            this.mapPrint.put(DATETEXT2, dateText2);
            this.mapPrint.put(DEALERNAME, "Dealer: " + this.getDealer().getFranchiseName().toUpperCase()
                    + " and Services Dealer: " + getApplication().getServiceProvider().getName().toUpperCase());

        } else {

            this.mapPrint.put(DEALERNAME, this.getDealer().getFranchiseName());

        }

    }

    public boolean validateSecondApplicant() {
        if (!getApplication().getApplicant2().getCustomer().getFirstName().trim().equals(Tokens.BLANK)
                && !getApplication().getApplicant2().getCustomer().getSurname().trim().equals(Tokens.BLANK)) {
            setSecondApplicant(true);
            return true;
        } else if (getApplication().getApplicant2().getCustomer().getFirstName().trim().equals(Tokens.BLANK)
                && getApplication().getApplicant2().getCustomer().getSurname().trim().equals(Tokens.BLANK)
                && getApplication().getApplicant2().getCustomer().getMiddleName().trim().equals(Tokens.BLANK)) {
            setSecondApplicant(false);
            return true;
        } else if (!getApplication().getApplicant2().getCustomer().getFirstName().trim().equals(Tokens.BLANK)
                || !getApplication().getApplicant2().getCustomer().getSurname().trim().equals(Tokens.BLANK)
                || !getApplication().getApplicant2().getCustomer().getMiddleName().trim().equals(Tokens.BLANK)) {
            setSecondApplicant(false);
            facesMessages.add(Util.getBundledMessageResource(Tokens.MSG_INVALIDNAME_SECONDAPPPLICANT));
        }
        return false;
    }

    public boolean validateLocation() {
        try {

            int idDealer = Util.obtainDealerId(this.autoCompleteLocation.getCompanySel(), this.autoCompleteLocation.getStoreSel(), this.autoCompleteLocation.getDealerSel());
            int idCompany = Util.obtainCompanyId(this.autoCompleteLocation.getCompanySel());
            int idStore = Util.obtainStoreId(this.autoCompleteLocation.getCompanySel(), this.autoCompleteLocation.getStoreSel());
            getApplication().setDealerId(null);
            getApplication().setStoreId(null);
            this.setDealerName(null);
            this.setStoreName(null);
            this.setCompanyName(null);

            this.setDealer(null);
            if (idDealer > 0) {

                DealerCache dealerCache = (DealerCache) AppContext.getCache(DealerCache.class.getSimpleName());
                Dealer dealerAux = (Dealer) dealerCache.getEntityById(idDealer);

                StoreCache storeCache = (StoreCache) AppContext.getCache(StoreCache.class.getSimpleName());
                Store storeAux = (Store) storeCache.getEntityById(idStore);

                CompanyCache companyCache = (CompanyCache) AppContext.getCache(CompanyCache.class.getSimpleName());
                Company companyAux = (Company) companyCache.getEntityById(idCompany);

                if (dealerAux != null) {
                    getApplication().setDealerId(dealerAux.getId());
                    getApplication().setStoreId(dealerAux.getStoreId());
                    this.setDealer(dealerAux);
                    this.setDealerName(dealerAux.getDepartmentCode() + Tokens.DASH + dealerAux.getFranchiseName());
                    this.setStoreName(storeAux.getStoreCode() + Tokens.DASH + storeAux.getName());
                    this.setCompanyName(companyAux.getCompanyCode() + Tokens.DASH + companyAux.getName());
                    return true;
                }

            }
            facesMessages.add(Util.getBundledMessageResource(Tokens.MSG_INVALID_LOCATION));
            return false;
        } catch (Exception e) {
            facesMessages.add(Util.getBundledMessageResource(Tokens.MSG_INVALID_LOCATION));
            return false;
        }
    }

    public void calculateSerialNumber() {
        double serialNoSyst = Math.random() * MAX_SERIAL;

        getApplication().setSerialNo(getDealer().getDepartmentCode() + (int) serialNoSyst + Tokens.BLANK);
    }

    public boolean validaSerialNumber() {
        if (getSerialNumberUser() != null) {
            if (getSerialNumberUser().equals("111")) { // return
                                                        // getApplication().getSerialNo().equals(getSerialNumberUser());
                return true;
            } else {
                facesMessages.add(Util.getBundledMessageResource(Tokens.MSG_INVALID_SERIALNUMBER));
                return false;
            }

        } else {
            facesMessages.add(Util.getBundledMessageResource(Tokens.MSG_INVALID_SERIALNUMBER));
            return false;
        }
    }

    public boolean validaDefaultPrintPrivacy() {
        if ((Util.getBundledMessageResource(Tokens.DEFAULTPRINTPRIVACY).toUpperCase().equals(Tokens.YES))) {
            return true;
        } else {
            return false;
        }
    }

    public boolean validaInvoiceNo() {

        if (Util.getApplicationService().isUniqueInvoiceNo(this.getDealer(), getApplication().getPrimaryInvoice().getInvoiceNo())) {
            // this.setMsgWrongInvoiceNo(Util.getBundledMessageResource(Tokens.BLANK));
            return true;
        } else {
            // this.setMsgWrongInvoiceNo(Util.getBundledMessageResource(Tokens.MSG_INVALID_INVOICENO));
            facesMessages.add( Util.getBundledMessageResource(Tokens.MSG_INVALID_INVOICENO));
            return false;
        }
    }

    public String getSurnameSearch() {
        return surnameSearch;
    }

    public void setSurnameSearch(String surnameSearch) {
        this.surnameSearch = surnameSearch;
    }

    public String getFirstNameSearch() {
        return firstNameSearch;
    }

    public void setFirstNameSearch(String firstNameSearch) {
        this.firstNameSearch = firstNameSearch;
    }

  
    public String getSerialNumberUser() {
        return serialNumberUser;
    }

    public void setSerialNumberUser(String serialNumberUser) {
        this.serialNumberUser = serialNumberUser;
    }

   


    @DataModel
    public List getListPossibleDebtors() {
        return listPossibleDebtors;
    }

    public void setListPossibleDebtors(List listPossibleDebtors) {
        this.listPossibleDebtors = listPossibleDebtors;
    }

    public boolean getServiceProvider() {
        return serviceProvider;
    }

    public void setServiceProvider(boolean serviceProvider) {
        this.serviceProvider = serviceProvider;
    }

    public String getIdServiceProvider() {
        return idServiceProvider;
    }

    public void setIdServiceProvider(String idServiceProvider) {
        this.idServiceProvider = idServiceProvider;
    }

    public boolean isSecondApplicant() {
        return secondApplicant;
    }

    public void setSecondApplicant(boolean secondApplicant) {
        this.secondApplicant = secondApplicant;
    }

    public Customer getCustomerSelected() {
        return customerSelected;
    }

    public void setCustomerSelected(Customer customerSelected) {
        this.customerSelected = customerSelected;
    }

    public void setSelectCustomerOne() {
        if (customerSelected != null) {
            getApplication().getApplicant1().setCustomer(customerSelected);
            if (customerSelected.getLatestAppCustomer() != null) {
                Application app = Util.getApplicationService().findApplicationById(
                        customerSelected.getLatestAppCustomer().getApplication().getId());
                application.getApplicant1().copyFrom(app.getApplicant1());
            }

        }
    }

    public Application getApplication() {
        return application;
    }

    public void setApplication(Application application) {
        this.application = application;
    }

    public void createApplication() {

        getApplication().setStoreId(getDealer().getStoreId());
        getApplication().setDealerId(getDealer().getId());
        getApplication().setFranchiseCode(getDealer().getFranchiseCode());

        getApplication().getApplicant1().setApplication(getApplication());
        getApplication().getPrimaryInvoice().setDealerId(getApplication().getDealerId());
        getApplication().getPrimaryInvoice().setApplication(getApplication());
        getApplication().getPrimaryInvoice().setStoreId(getApplication().getStoreId());

        if (isSecondApplicant()) {
            getApplication().getApplicant2().setApplication(getApplication());

        } else {
            getApplication().setApplicant2(null);
        }

        Util.getApplicationService().saveApplication(getApplication());

    }

    public List getListServiceProviders() {

        ServiceProviderCache serviceProviderCache = (ServiceProviderCache) AppContext.getCache(ServiceProviderCache.class
                .getSimpleName());
        List serviceProviders = (List) serviceProviderCache.getEntityList();

        return serviceProviders;

    }

    public void onSelectServiceProvider(ValueChangeEvent event) {
        ServiceProvider serProvider = (ServiceProvider) event.getNewValue();
        getApplication().setServiceProvider(serProvider);

    }

    
    public void setPrinting() {
        this.setFlgPrint(true);
    }
    
    public void setNoPrinting() {
        this.setFlgPrint(false);
    }

    public Dealer getDealer() {
        return dealer;
    }

    public void setDealer(Dealer dealer) {
        this.dealer = dealer;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getDealerName() {
        return dealerName;
    }

    public void setDealerName(String dealerName) {
        this.dealerName = dealerName;
    }

    public String getStoreName() {
        return storeName;
    }

    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    public boolean isFlgPrint() {
        return flgPrint;
    }

    public void setFlgPrint(boolean flgPrint) {
        this.flgPrint = flgPrint;
    }

    public AutoCompleteLocation getAutoCompleteLocation() {
        return autoCompleteLocation;
    }

    public void setAutoCompleteLocation(AutoCompleteLocation autoCompleteLocation) {
        this.autoCompleteLocation = autoCompleteLocation;
    }

    public Integer getNumRows() {
        return numRows;
    }

    public void setNumRows(Integer numRows) {
        this.numRows = numRows;
    }

}

*****************

My page 

<?xml version="1.0" encoding="UTF-8"?>
<jsp:root xmlns="http://www.w3.org/1999/xhtml"
	xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
	xmlns:a="https://ajax4jsf.dev.java.net/ajax"
	xmlns:c="http://java.sun.com/jstl/core"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:jsp="http://java.sun.com/JSP/Page"
	xmlns:rich="http://richfaces.ajax4jsf.org/rich"
	xmlns:s="http://jboss.com/products/seam/taglib"
	xmlns:ui="http://java.sun.com/jsf/facelets" version="2.0">
	<h:messages globalOnly="true" styleClass="alertMsgBold" />
	<h:form id='normalApp'>


		<s:validateAll>


			<a4j:region id="autocomplete">

				
					
						<h:outputText id="idHeaderLocation"
							value="#{msg['creditApplication.headerLocation']}"
							styleClass="header1" />
					

					<c:if test="#{userCredentials.allStoresAccessor}">

						
							
							ALLSTORE=TRUE<h:outputText for="company"
								value="#{msg['creditApplication.company']}" />asfasf
							<a4j:outputPanel id="companyPanel">
								<a4j:region id="companyRegion" renderRegionOnly="false">
									<h:inputText
										value="#{normalCreditApplication.autoCompleteLocation.companySel}"
										size="50" required="true" id="company" />

									<rich:suggestionbox for="company"
										suggestionAction="#{normalCreditApplication.autoCompleteLocation.autocompleteCompany}"
										var="company" height="200" width="250" requestDelay="350"
										focus="store" ignoreDupResponses="true">
										<a4j:support event="onselect"
											action="#{normalCreditApplication.autoCompleteLocation.onSelectCompany}"
											reRender="storePanel,dealerPanel"
											oncomplete="setFocus('normalApp:store');" />
										<h:column>
											<h:outputText value="#{company.companyCode}-#{company.name}" />
										</h:column>
									</rich:suggestionbox>
								</a4j:region>
							</a4j:outputPanel>
							<a4j:outputPanel ajaxRendered="true">
								<h:message for="company" styleClass="alertMsg" />
							</a4j:outputPanel>
						
					</c:if>
					<c:if test="#{!userCredentials.allStoresAccessor}">
						
							
							<h:outputText for="company"
								value="#{msg['creditApplication.company']}" />
							<h:outputText for="company"
								value="#{normalCreditApplication.autoCompleteLocation.companySel}" />
							
							
						
					</c:if>
					<c:if test="#{userCredentials.allStoresAccessor}">
						
							
							<h:outputText for="store"
								value="#{msg['creditApplication.store']}" />
							<a4j:outputPanel id="storePanel">
								<a4j:region id="storeRegion" renderRegionOnly="false">
									<h:inputText
										value="#{normalCreditApplication.autoCompleteLocation.storeSel}"
										size="50" required="true" id="store" />
									<rich:suggestionbox for="store" requestDelay="350"
										suggestionAction="#{normalCreditApplication.autoCompleteLocation.autocompleteStore}"
										var="store" height="200" width="250" focus="dealer">
										<a4j:support event="onselect"
											action="#{normalCreditApplication.autoCompleteLocation.onSelectStore}"
											reRender="dealerPanel"
											oncomplete="setFocus('normalApp:dealer');" />
										<h:column>
											<h:outputText value="#{store.storeCode}-#{store.name}" />
										</h:column>
									</rich:suggestionbox>
								</a4j:region>
							</a4j:outputPanel>
							<a4j:outputPanel ajaxRendered="true">
								<h:message for="store" styleClass="alertMsg" />
							</a4j:outputPanel>
						
					</c:if>
					<c:if test="#{!userCredentials.allStoresAccessor}">
						
							
							<h:outputText for="store"
								value="#{msg['creditApplication.store']}" />
							<h:outputText for="store"
								value="#{normalCreditApplication.autoCompleteLocation.storeSel}" />
							
							
						
					</c:if>
					
						
						<h:outputText for="dealer"
							value="#{msg['creditApplication.dealer']}" />
						<a4j:outputPanel id="dealerPanel">

							<h:inputText
								value="#{normalCreditApplication.autoCompleteLocation.dealerSel}"
								size="50" id="dealer" required="true" />
							<rich:suggestionbox for="dealer" requestDelay="350"
								suggestionAction="#{normalCreditApplication.autoCompleteLocation.autocompleteDealer}"
								var="dealer" height="200" width="250">
								<a4j:support event="onselect"
									oncomplete="setFocus('normalApp:invoice');" />
								<h:column>
									<h:outputText
										value="#{dealer.departmentCode}-#{dealer.franchiseName}" />
								</h:column>
							</rich:suggestionbox>

						</a4j:outputPanel>
						<a4j:outputPanel ajaxRendered="true">
							<h:message for="dealer" styleClass="alertMsg" />
						</a4j:outputPanel>
					
				
			</a4j:region>
			
				
					
				
				
					<h:outputText id="headerApplicationDetails"
						value="#{msg['creditApplication.headerApplicationDetails']}"
						styleClass="header1" />
				
				
					
					<h:outputText for="invoice"
						value="#{msg['creditApplication.invoice']}" />
					<h:inputText id="invoice"
						value="#{normalCreditApplication.application.primaryInvoice.invoiceNo}"
						required="true"></h:inputText>
					<h:message for="invoice" styleClass="alertMsg" />
				
				
					
				
				
					<h:outputText for="headerFirstApplicant"
						value="#{msg['creditApplication.headerFirstApplicant']}"
						styleClass="header1" />
				
				
					
					<h:outputText for="firstName"
						value="#{msg['creditApplication.firstName']}" />
					<h:inputText id="firstName"
						value="#{normalCreditApplication.application.applicant1.customer.firstName}"
						required="true"></h:inputText>
					<h:message for="firstName" styleClass="alertMsg" />
				
				
					
					<h:outputText for="middleName"
						value="#{msg['creditApplication.middleName']}" />
					<h:inputText id="middleName"
						value="#{normalCreditApplication.application.applicant1.customer.middleName}"></h:inputText>
					<h:message for="middleName" styleClass="alertMsg" />
				
				
					
					<h:outputText for="surname"
						value="#{msg['creditApplication.surname']}" />
					<h:inputText id="surname"
						value="#{normalCreditApplication.application.applicant1.customer.surname}"
						required="true"></h:inputText>
					<h:message for="surname" styleClass="alertMsg" />
				
				
					
				
				
					<h:outputText for="headerSecondApplicant"
						value="#{msg['creditApplication.headerSecondApplicant']}"
						styleClass="header1" />
				
				
					
					<h:outputText for="firstNameSecond"
						value="#{msg['creditApplication.firstName']}" />
					<h:inputText id="firstNameSecond"
						value="#{normalCreditApplication.application.applicant2.customer.firstName}"></h:inputText>
					<h:message for="firstNameSecond" styleClass="alertMsg" />
				
				
					
					<h:outputText for="middleNameSecond"
						value="#{msg['creditApplication.middleName']}" />
					<h:inputText id="middleNameSecond"
						value="#{normalCreditApplication.application.applicant2.customer.middleName}"></h:inputText>
					<h:message for="middleNameSecond" styleClass="alertMsg" />
				
				
					
					<h:outputLabel for="surnameSecond"
						value="#{msg['creditApplication.surname']}" />
					<h:inputText id="surnameSecond"
						value="#{normalCreditApplication.application.applicant2.customer.surname}"></h:inputText>
					<h:message for="surnameSecond" styleClass="alertMsg" />
				
			

			<f:subview rendered="#{normalCreditApplication.serviceProvider}">



				
					
						<h:outputText id="headerServiceProvider"
							value="#{msg['creditApplication.headerServiceProvider']}"
							styleClass="header1" />
					

					
						
						<h:outputLabel for="serviceProv"
							value="#{msg['creditApplication.serviceProvider']}" />
						<h:selectOneMenu
							value="#{normalCreditApplication.application.serviceProvider}"
							style="width:280px"
							valueChangeListener="#{normalCreditApplication.onSelectServiceProvider}"
							id="serviceProviderId">
							<s:selectItems
								value="#{normalCreditApplication.listServiceProviders}"
								var="serviceProvider" onchange="submit()" immediate="true"
								label="#{serviceProvider.name}" />
							<f:converter converterId="serviceProviderConverter" />
						</h:selectOneMenu>
						<h:message for="serviceProv"
							styleClass="alertMsg" />
					

				
			</f:subview>

		</s:validateAll>
		<h:commandButton value="#{msg['creditApplication.next']}"
			action="next" styleClass="buttom" />
	</h:form> 
	
	

	

</jsp:root>


The errror:

2007-08-06 09:15:04 StandardWrapperValve[FacesServlet]: Servlet.service() for servlet FacesServlet threw exception
javax.faces.el.EvaluationException: /normal-application.jspx @13,72 rendered="#{normalCreditApplication.serviceProvider}": Exception getting value of property serviceProvider of base of type : com.yoogalu.ncf.web.seam.bean.NormalCreditApplication_$$_javassist_2
	at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:60)
	at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1078)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:601)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:138)
	at org.ajax4jsf.framework.ajax.AjaxViewRoot.access$001(AjaxViewRoot.java:53)
	at org.ajax4jsf.framework.ajax.AjaxViewRoot$1.invokeRoot(AjaxViewRoot.java:256)
	at org.ajax4jsf.framework.ajax.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:53)
	at org.ajax4jsf.framework.ajax.AjaxContext.invokeOnRegionOrRoot(AjaxContext.java:191)
	at org.ajax4jsf.framework.ajax.AjaxViewRoot.processDecodes(AjaxViewRoot.java:272)
	at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32)
	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at com.yoogalu.ncf.web.servlet.Boilerplate.doFilter(Boilerplate.java:42)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
	at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
	at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:595)
Caused by: javax.faces.el.EvaluationException: Bean: com.yoogalu.ncf.web.seam.bean.NormalCreditApplication_$$_javassist_2, property: serviceProvider
	at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:461)
	at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:85)
	at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:141)
	at com.sun.el.parser.AstValue.getValue(AstValue.java:118)
	at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)
	at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
	at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:56)
	... 66 more
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.GeneratedMethodAccessor279.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:457)
	... 72 more
Caused by: org.jboss.seam.NoConversationException: no long-running conversation for @Conversational bean: normalCreditApplication
	at org.jboss.seam.interceptors.ConversationalInterceptor.aroundInvoke(ConversationalInterceptor.java:55)
	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
	at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27)
	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
	at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
	at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:151)
	at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:87)
	at com.yoogalu.ncf.web.seam.bean.NormalCreditApplication_$$_javassist_2.getServiceProvider(NormalCreditApplication_$$_javassist_2.java)
	... 76 more

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4071010#4071010

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4071010



More information about the jboss-user mailing list