Erro ao chamar o método - property 'gerador' not found on type br.com.GeradorSerialProject.GeradorBean

Pessoal, por que toda vez que clico no botão “gerar” no .xhtml da esse erro?

Erro: DVERTÊNCIA: Definindo valor de atributo não serializável em ViewMap (chave: geradorBean, classe do valor: br.com.GeradorSerialProject.GeradorBean).
nov 01, 2016 3:41:07 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
GRAVE: Error Rendering View[/pages/gerador.xhtml]
javax.el.PropertyNotFoundException: /pages/gerador.xhtml @19,91 value="#{geradorBean.gerador.dataVencimento}": Property ‘gerador’ not found on type br.com.GeradorSerialProject.GeradorBean
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIOutput.getValue(UIOutput.java:174)
at javax.faces.component.UIInput.getValue(UIInput.java:291)
at org.primefaces.util.ComponentUtils.getValueToRender(ComponentUtils.java:81)
at org.primefaces.component.inputtext.InputTextRenderer.encodeMarkup(InputTextRenderer.java:71)
at org.primefaces.component.inputtext.InputTextRenderer.encodeEnd(InputTextRenderer.java:52)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)…
…javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)…
…org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
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: javax.el.PropertyNotFoundException: Property ‘gerador’ not found on type br.com.GeradorSerialProject.GeradorBean
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:259)
at javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:212)
at javax.el.BeanELResolver.property(BeanELResolver.java:346)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:92)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at org.apache.el.parser.AstValue.getValue(AstValue.java:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
… 46 more


@ManagedBean
@ViewScoped
public class GeradorBean {
private Gerador gerador;
        public void gerarSerial() {
                gerador = new Gerador();
		String data = gerador.getDataVencimento();
		int calculo = (Integer.parseInt(data)+132)/4;	
		gerador.setCodigoSerial(calculo);
	}

gerador.xhtml

<h:form>
	<center>
		<h:panelGrid columns="2">
			<p:outputLabel value="Data do Vencimento:" />
			<p:inputText maxlength="50" size="30" value="#{geradorBean.gerador.dataVencimento}" />

			<p:outputLabel value="Código Gerado:" />
			<p:inputText maxlength="2" size="10" value="#{geradorBean.gerador.codigoSerial}"/>
		</h:panelGrid>

		<h:panelGrid columns="2">
			<p:commandButton value="Gerar"
				actionListener="#{geradorBean.gerarSerial()}" update=":mensagem" />
			<p:commandButton value="Cancelar" />
		</h:panelGrid>
	</center>
</h:form>

Domain

public class Gerador {
	private String dataVencimento;
        private int codigoSerial;
    	public void setCodigoSerial(int codigoSerial) {
    		this.codigoSerial = codigoSerial;
    	}	
    	public String getDataVencimento() {
    		return dataVencimento;
    	}
    	public void setDataVencimento(String dataVencimento) {
    		this.dataVencimento = dataVencimento;
    	}
    	public int getCodigoSerial() {
    		return codigoSerial;
    	}

Resolvido com este código, não estava instanciando o objeto no momento certo.

@PostConstruct
public void novo(){
	gerador = new Gerador();
}