Erro de target unreachable

Pessoal que to fazendo de errado pra ficar dando esse erro. segue:

/restrito/movimento_item.xhtml @23,145 value="#{movimentoItemBean.movimentoItem.cod_item}": Target Unreachable, ‘movimentoItem’ returned null

Tenho bean movimento e outra movimento_item que seria “capa” e a outra de “itens da capa”

Digito os dados da capa gravo blz ele gera a ID automatica no banco, ate ai blz. dai tenho botao na datatable pra cada linha pra adicionar os itens, clico no mesmo e carrego a id do movimento para pode usar no gravar dos itens ja q é a chave tb, so que ao digitar os campos do item e dar salvar o mesmo grava na tabela dai ao recarregar a pagina pois tem uma datatable abaixo do form dos campos dos itens pra ir mostrando os itens que estao sendo cadastrado, da o erro citado acima, parece que no selectonemenu do material, to batendo a cabeça faz uma semana e nao descubro e preciso entregar TCC segunda, por favor me ajudem, o que pode ser??? me ajudem. Segue abaixo a codificação da tela e do movimento_item bean.

Tela:

	<h:form id="cadastro" style="width:700px; margin-left:30px;">
	<p:growl id="growl" />
	<p:panel id="panel">
	<f:facet name="header">Cadastro de Itens</f:facet>
		<h:outputLabel id="cod_movime" value="#{movimentoItemBean.movimentoItem.cod_movime}"/>
		<h:panelGrid columns="2">	
			<p:outputLabel value="Nº Documento:"/>
			<p:outputLabel id="cod_docume" value="#{movimentoBean.movimento.cod_docume}/#{movimentoBean.movimento.cod_serie_docume}" style="font-size:30px" />

			<p:outputLabel value="Cód.Item:" for="cod_item"/>
			<p:selectOneMenu id="cod_item" value="#{movimentoItemBean.movimentoItem.cod_item}" required="true" requiredMessage="Cód.Item é obrigatório!">
				<f:selectItem itemLabel="Selecione Material"/>
				<f:selectItems value="#{materialBean.lista}"
					var="material"
					itemValue="#{material.cod_materi}"
					itemLabel="#{material.des_materi}"
					/>
			</p:selectOneMenu>

			<p:outputLabel value="Cód.Unidade" for="cod_unidad"/>
			<p:inputText id="cod_unidad" value="#{movimentoItemBean.movimentoItem.cod_unidad}" size="4" maxlength="2" required="true" requiredMessage="Unidade do item é obrigatório!"/>

			<p:outputLabel value="Qtde Item:" for="val_quanti_item" />
			<p:inputText id="val_quanti_item" value="#{movimentoItemBean.movimentoItem.val_quanti_item}" size="10" required="true" requiredMessage="Qtde do Item é obrigatório!"/>

			<p:outputLabel value="Preço Unitar.:" for="val_preco_unitar" />
			<p:inputText id="val_preco_unitar" value="#{movimentoItemBean.movimentoItem.val_preco_unitar}" size="10" required="true" requiredMessage="Preço Unitário é obrigatório!">
				<f:convertNumber pattern="#,##0" minFractionDigits="2" maxFractionDigits="2" />
				<f:ajax event="blur" execute="@this" render="val_preco_unitar" />
			</p:inputText>
		</h:panelGrid>
		<f:facet name="footer">
		<p:commandButton id="btnSalvar" action="#{movimentoItemBean.salvar}" value="Salvar" icon="ui-icon-disk" ajax="false"/>
		<p:commandButton id="btnVoltar" action="#{movimentoItemBean.voltar}" value="Voltar" icon="ui-icon-arrowreturnthick-1-w" immediate="true" />
		</f:facet>
		</p:panel>
	</h:form>
	<br /><br />
	<h:form id="listagem" style="width:700px; margin-left:30px;">
	<p:dataTable id="itens_nota" value="#{movimentoItemBean.lista}" var="item">
	<h:inputHidden value="#{item.cod_movime}" />
		<p:column id="colunaSeqItem">
			<f:facet name="header">
				<h:outputText value="Item"/> 
			</f:facet> 
			<h:outputText value="#{item.seq_item}" id="seq_item"/>  		
		</p:column>

		<p:column id="colunaCodMaterial">
			<f:facet name="header">
				<h:outputText value="Cod.Item"/> 
			</f:facet> 
			<h:outputText value="#{item.material.des_materi}" id="des_materi"/>  		
		</p:column>

		<p:column id="colunaQtdeUnidade">
			<f:facet name="header">
				<h:outputText value="Qtde"/> 
			</f:facet> 
			<h:outputText value="#{item.val_quanti_item}" id="val_quanti_item"/>			  		
		</p:column>

		<p:column id="colunaCodUnidade">
			<f:facet name="header">
				<h:outputText value="Unidade"/> 
			</f:facet> 
			<h:outputText value="#{item.cod_unidad}" id="cod_unidad"/>  		
		</p:column>

		<p:column id="colunaPrecoUnitar">
			<f:facet name="header">
				<h:outputText value="Preço Unitar."/> 
			</f:facet> 
			<h:outputText value="#{item.val_preco_unitar}" id="val_preco_unitar"/>			  		
		</p:column>

		<p:column id="colunaTotal">
			<f:facet name="header">
				<h:outputText value="Total"/> 
			</f:facet> 
			<h:outputText value="#{movimentoItemBean.somaTotal()}" id="val_preco_total">
				<f:convertNumber pattern="#,##0" minFractionDigits="2" maxFractionDigits="2" />
			</h:outputText>		  		
		</p:column>

	
	<p:column id="colunaExcluir" style="width:10px;text-align:center"> 
		<p:commandLink action="#{movimentoItemBean.excluir}" onclick="if (!confirm('Confirma a exclusão da #{item.material.des_materi}?')) return false;" update="itens_nota">
			<h:graphicImage library="imagens" name="excluir16.png" style="border:0;"/>
			<f:setPropertyActionListener target="#{movimentoItemBean.movimentoItem}" value="#{item}"/>
		</p:commandLink>
		</p:column>
	</p:dataTable>
	</h:form>

Bean dos itens.

package cpsobras.web;

import java.io.Serializable;
import java.util.List;

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

import cpsobras.movimento_item.MovimentoItemRN;
import cpsobras.movimento_item.Movimento_Item;

@ManagedBean(name="movimentoItemBean")
@SessionScoped
public class MovimentoItemBean implements Serializable {

	private static final long serialVersionUID = 1L;
	private Movimento_Item movimentoItem = new Movimento_Item();
	private List<Movimento_Item> lista;
	private List<Movimento_Item> pesquisarMovimentoItem;
	private Integer cod_movime;
	
	public Integer getCod_movime() {
		return cod_movime;
	}
	public void setCod_movime(Integer cod_movime) {
		this.cod_movime = cod_movime;
	}
	public String salvar(){
		int i = 0;
		MovimentoItemRN movimentoItemRN = new MovimentoItemRN();
		if(this.lista != null){
			i = this.lista.size()+1;
		}else{
			i = 1;
		}
		this.movimentoItem.setCod_movime(this.cod_movime);
		this.movimentoItem.setSeq_item(i);
		movimentoItemRN.salvar(this.movimentoItem);
		FacesContext context = FacesContext.getCurrentInstance();
		FacesMessage facesMessage = new FacesMessage("Cadastrado com sucesso!");
		context.addMessage(null, facesMessage); 
		//FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove("movimentoItemBean");
		this.movimentoItem = null;
		return "";
	}
	
	public String excluir(){
		MovimentoItemRN movimentoItemRN = new MovimentoItemRN();
		movimentoItemRN.excluir(this.movimentoItem);
		this.lista = null;
		FacesContext.getCurrentInstance().getExternalContext().getSessionMap().remove("movimentoItemBean");
		return "listar_movimento_item";
	}
		
	public String alterar(){
		return "movimento_item";
	}

	public String voltar(){
		return "listar_movimento_item";
	}
	
	public List<Movimento_Item> getLista() {
		this.lista = null;
		MovimentoItemRN movimentoItemRN = new MovimentoItemRN();
		this.lista = movimentoItemRN.listar(this.cod_movime);
		return this.lista;
	}

	public List<Movimento_Item> getPesquisarMovimentoItem() {
		return pesquisarMovimentoItem;
	}

	public void setPesquisarMovimentoItem(List<Movimento_Item> pesquisarMovimentoItem) {
		this.pesquisarMovimentoItem = pesquisarMovimentoItem;
	}

	public Movimento_Item getMovimentoItem() {
		return movimentoItem;
	}

	public void setMovimentoItem(Movimento_Item movimentoItem) {
		this.movimentoItem = movimentoItem;
	}
	
	public Double somaTotal(){
		return 0.00;
		//this.movimentoItem.getVal_quanti_item() * this.movimentoItem.getVal_preco_unitar();
	}

}

Caso vcs tem outra ideia de como fazer essa tela tb me dando dica ajuda mutio, mas to com o tempo esgotado.

Obrigado pela atenção.

Quando você salva você seta seu movimentoItem para null.this.movimentoItem = null; Por isso está tendo esse problema.

Rodrigo kra obrigado por responder, ali eu fiz isso tb ele salva e nao da o erro, mas precisava que ele limpasse os campos por isso limpava o objeto, até pq eu tava limpando o objeto, mas dai o mesmo ja chamava a lista da datatable onde eu faço o select da id da “capa” movimento para ele recarregar a mesma, só q dai da o erro, bem tirando o null do objeto, mesmo fazendo isso kra ele deveria preencher a minha datatable com o campo descricao do material q é outra entidade que esta mapeada na entity e o mesmo traz em branco, exemplo:

veja que no codigo da datatable ele carrega o campo descricao do material navegando na classe.

		<p:column id="colunaCodMaterial">
			<f:facet name="header">
				<h:outputText value="Cod.Item"/> 
			</f:facet> 
			<h:outputText value="#{item.material.des_materi}" id="des_materi"/>  		
		</p:column>

veja item.material.des_materi como q posso resolver isso? segue minha entity movimento_item

package cpsobras.movimento_item;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import cpsobras.material.Material;
import cpsobras.movimento.Movimento;
import cpsobras.servico.Servico;

@Entity
@Table(name="tab_movimento_item")
public class Movimento_Item implements Serializable{

	private static final long serialVersionUID = 1L;
		
	@Id
	private Integer seq_item;
	private Integer cod_movime;
	@Column(name="cod_materi")
	private Integer cod_item;
	private Integer cod_servic;
	private Integer val_quanti_item;
	private Double val_preco_unitar;
	private String cod_unidad;
	
	@ManyToOne
	@JoinColumn(name="cod_movime", insertable=false, updatable=false)
	private Movimento movimento;
	
	@ManyToOne
	@JoinColumn(name="cod_materi", insertable=false, updatable=false)
	private Material material;
	
	@ManyToOne
	@JoinColumn(name="cod_servic", insertable=false, updatable=false)
	private Servico servico;

	public Integer getSeq_item() {
		return seq_item;
	}

	public void setSeq_item(Integer seq_item) {
		this.seq_item = seq_item;
	}

	public Integer getCod_movime() {
		return cod_movime;
	}

	public void setCod_movime(Integer cod_movime) {
		this.cod_movime = cod_movime;
	}

	public Integer getCod_item() {
		return cod_item;
	}

	public void setCod_item(Integer cod_item) {
		this.cod_item = cod_item;
	}

	public Integer getCod_servic() {
		return cod_servic;
	}

	public void setCod_servic(Integer cod_servic) {
		this.cod_servic = cod_servic;
	}

	public Integer getVal_quanti_item() {
		return val_quanti_item;
	}

	public void setVal_quanti_item(Integer val_quanti_item) {
		this.val_quanti_item = val_quanti_item;
	}

	public Double getVal_preco_unitar() {
		return val_preco_unitar;
	}

	public void setVal_preco_unitar(Double val_preco_unitar) {
		this.val_preco_unitar = val_preco_unitar;
	}

	public String getCod_unidad() {
		return cod_unidad;
	}

	public void setCod_unidad(String cod_unidad) {
		this.cod_unidad = cod_unidad;
	}

	public Movimento getMovimento() {
		return movimento;
	}

	public void setMovimento(Movimento movimento) {
		this.movimento = movimento;
	}

	public Material getMaterial() {
		return material;
	}

...

Que faço? limpando objeto nao da, posso limpar somente alguns campos entao criando um metodo pra isso, pois ao salvar nao quero q aparece os dados nos campos e quero q o usuario possa cadastrar novo item, e ao salvar ele recarrega a datatable q esta abaixo com o item salvo.

Em vez de null, só fazer

essa parte resolvida, mas ao carregar o datatable ele nao traz a descricao do material, o material tem relacionamento com a entidade movimento_item q to cadastrando.

package cpsobras.movimento_item;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import cpsobras.material.Material;
import cpsobras.movimento.Movimento;
import cpsobras.servico.Servico;

@Entity
@Table(name="tab_movimento_item")
public class Movimento_Item implements Serializable{

	private static final long serialVersionUID = 1L;
		
	@Id
	private Integer seq_item;
	private Integer cod_movime;
	@Column(name="cod_materi")
	private Integer cod_item;
	private Integer cod_servic;
	private Integer val_quanti_item;
	private Double val_preco_unitar;
	private String cod_unidad;
	
	@ManyToOne
	@JoinColumn(name="cod_movime", insertable=false, updatable=false)
	private Movimento movimento;
	
	@ManyToOne
	@JoinColumn(name="cod_materi", insertable=false, updatable=false)
	private Material material;
	
	@ManyToOne
	@JoinColumn(name="cod_servic", insertable=false, updatable=false)
	private Servico servico;

	public Integer getSeq_item() {
		return seq_item;
	}

	public void setSeq_item(Integer seq_item) {
		this.seq_item = seq_item;
	}

	public Integer getCod_movime() {
		return cod_movime;
	}

	public void setCod_movime(Integer cod_movime) {
		this.cod_movime = cod_movime;
	}

	public Integer getCod_item() {
		return cod_item;
	}

	public void setCod_item(Integer cod_item) {
		this.cod_item = cod_item;
	}

	public Integer getCod_servic() {
		return cod_servic;
	}

	public void setCod_servic(Integer cod_servic) {
		this.cod_servic = cod_servic;
	}

	public Integer getVal_quanti_item() {
		return val_quanti_item;
	}

	public void setVal_quanti_item(Integer val_quanti_item) {
		this.val_quanti_item = val_quanti_item;
	}

	public Double getVal_preco_unitar() {
		return val_preco_unitar;
	}

	public void setVal_preco_unitar(Double val_preco_unitar) {
		this.val_preco_unitar = val_preco_unitar;
	}

	public String getCod_unidad() {
		return cod_unidad;
	}

	public void setCod_unidad(String cod_unidad) {
		this.cod_unidad = cod_unidad;
	}

	public Movimento getMovimento() {
		return movimento;
	}

	public void setMovimento(Movimento movimento) {
		this.movimento = movimento;
	}

	public Material getMaterial() {
		return material;
	}

	public void setMaterial(Material material) {
		this.material = material;
	}

	public Servico getServico() {
		return servico;
	}

	public void setServico(Servico servico) {
		this.servico = servico;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((cod_item == null) ? 0 : cod_item.hashCode());
		result = prime * result
				+ ((cod_movime == null) ? 0 : cod_movime.hashCode());
		result = prime * result
				+ ((cod_servic == null) ? 0 : cod_servic.hashCode());
		result = prime * result
				+ ((cod_unidad == null) ? 0 : cod_unidad.hashCode());
		result = prime * result
				+ ((seq_item == null) ? 0 : seq_item.hashCode());
		result = prime
				* result
				+ ((val_preco_unitar == null) ? 0 : val_preco_unitar.hashCode());
		result = prime * result
				+ ((val_quanti_item == null) ? 0 : val_quanti_item.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Movimento_Item other = (Movimento_Item) obj;
		if (cod_item == null) {
			if (other.cod_item != null)
				return false;
		} else if (!cod_item.equals(other.cod_item))
			return false;
		if (cod_movime == null) {
			if (other.cod_movime != null)
				return false;
		} else if (!cod_movime.equals(other.cod_movime))
			return false;
		if (cod_servic == null) {
			if (other.cod_servic != null)
				return false;
		} else if (!cod_servic.equals(other.cod_servic))
			return false;
		if (cod_unidad == null) {
			if (other.cod_unidad != null)
				return false;
		} else if (!cod_unidad.equals(other.cod_unidad))
			return false;
		if (seq_item == null) {
			if (other.seq_item != null)
				return false;
		} else if (!seq_item.equals(other.seq_item))
			return false;
		if (val_preco_unitar == null) {
			if (other.val_preco_unitar != null)
				return false;
		} else if (!val_preco_unitar.equals(other.val_preco_unitar))
			return false;
		if (val_quanti_item == null) {
			if (other.val_quanti_item != null)
				return false;
		} else if (!val_quanti_item.equals(other.val_quanti_item))
			return false;
		return true;
	}	
}

Pq sera q nao carrega o material junto ??? ou como posso resolver isso, por favor me ajudem.