Como tratar a exceção javax.el.ELException?[RESOLVIDO]

Pessoal, já pesquisei bastante e não encontrei nada que esclarecesse a exceção, pois o código estava rodando normalmente, depois parou de funcionar mostrando a seguinte exceção:

javax.el.ELException: Cannot convert prof of type class java.lang.String to class br.com.laboratorio.model.Profissional
	at org.apache.el.lang.ELSupport.coerceToType(ELSupport.java:424)
	at org.apache.el.ExpressionFactoryImpl.coerceToType(ExpressionFactoryImpl.java:47)
	at com.sun.faces.facelets.tag.jsf.core.SetPropertyActionListenerHandler$SetPropertyListener.processAction(SetPropertyActionListenerHandler.java:209)
	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
	at javax.faces.component.UICommand.broadcast(UICommand.java:300)
	at javax.faces.component.UIData.broadcast(UIData.java:1092)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:795)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1260)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at br.com.laboratorio.util.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Desde já agradeço.

Posta o codigo. Você não atualizou nada?

Esqueci de falar que o erro acontece quando vou excluir um profissional cadastrado. Segue os códigos:

[code]
@Entity
@Table(name=“profissional”)
public class Profissional implements Serializable {

private Integer codigo;
private String nome;
private String registro;
private String profissao;
private Date dataCadastro;

public Profissional() {
	
}

public Profissional(Integer codigo, String nome) {
	this.codigo = codigo;
	this.nome = nome;
}

@Id
@GeneratedValue
@Column(name="codigo_profissional")
public Integer getCodigo() {
	return codigo;
}

public void setCodigo(Integer codigo) {
	this.codigo = codigo;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public String getRegistro() {
	return registro;
}

public void setRegistro(String registro) {
	this.registro = registro;
}

public String getProfissao() {
	return profissao;
}

public void setProfissao(String profissao) {
	this.profissao = profissao;
}

@Column(name="data_cadastro")
public Date getDataCadastro() {
	return dataCadastro;
}

public void setDataCadastro(Date dataCadastro) {
	this.dataCadastro = dataCadastro;
}

@Override
public int hashCode() {
	final int prime = 31;
	int result = 1;
	result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
	result = prime * result
			+ ((registro == null) ? 0 : registro.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;
	Profissional other = (Profissional) obj;
	if (codigo == null) {
		if (other.codigo != null)
			return false;
	} else if (!codigo.equals(other.codigo))
		return false;
	if (registro == null) {
		if (other.registro != null)
			return false;
	} else if (!registro.equals(other.registro))
		return false;
	return true;
}

}[/code]

@FacesConverter(forClass=Profissional.class)
public class ProfissionalConverter implements Converter {

	
	private Repositorios repositorios = new Repositorios();
	
	@Override
	public Object getAsObject(FacesContext context, UIComponent component, String value) {
		Profissional retorno = null;
		
		if(value != null) {
			Profissionais profissionais = repositorios.getProfissionais();
			retorno = profissionais.porCodigo(new Integer(value));
		}
		return retorno;
	}

	@Override
	public String getAsString(FacesContext context, UIComponent component, Object value) {
		
		if(value != null) {
			return ((Profissional)value).getCodigo().toString();
		}
		return null;
	}
}
public class ProfissionaisHibernate implements Profissionais {

	private Session session;
	
	public ProfissionaisHibernate(Session session) {
		this.session = session;
	}
	
	@Override
	public List<Profissional> todos() {
		return session.createCriteria(Profissional.class)
				.addOrder(Order.asc("nome"))
				.list();
	}

	@Override
	public Profissional porCodigo(Integer codigo) {
		return (Profissional) session.get(Profissional.class , new Integer(codigo));
	}

	@Override
	public Profissional guardar(Profissional profissional) {
		return (Profissional) session.merge(profissional);
	}

	@Override
	public void remover(Profissional profissional) {
		this.session.delete(profissional);		
	}

}
public class Repositorios implements Serializable {
	
	public Profissionais getProfissionais() {
		return new ProfissionaisHibernate(this.getSession());
	}
	
	private Session getSession(	) {
		return (Session) FacesUtil.getRequestAttribute("session");
	}
}
@ManagedBean
public class ConsultaProfissionalBean implements Serializable {

	private Repositorios repositorios = new Repositorios();
	private List<Profissional> profissionais = new ArrayList<Profissional>();
	private Profissional profissionalSelecionado;
	
	@SuppressWarnings("unchecked")
	@PostConstruct
	public void inicializar() {
		
		Profissionais profissionais = repositorios.getProfissionais();
		this.profissionais = profissionais.todos();
	}
	
	public void excluir() {
		Profissionais profissionais = repositorios.getProfissionais();
		profissionais.remover(this.profissionalSelecionado);
		
		this.inicializar();

		FacesUtil.adicionarMensagem(FacesMessage.SEVERITY_INFO,
				"Profissional excluído com sucesso!");
	}

	public Profissional getProfissionalSelecionado() {
		return profissionalSelecionado;
	}

	public void setProfissionalSelecionado(Profissional profissionalSelecionado) {
		this.profissionalSelecionado = profissionalSelecionado;
	}

	public List<Profissional> getProfissionais() {
		return profissionais;
	}
}
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	  xmlns:h="http://java.sun.com/jsf/html"
	  xmlns:f="http://java.sun.com/jsf/core"
	  xmlns:ui="http://java.sun.com/jsf/facelets">
	<h:head>
		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
		<title>Profissionais</title>
		
		<h:outputStylesheet library="css" name="sistema.css"/>
		<h:outputStylesheet library="css" name="consulta-usuarios.css"/>
	</h:head>
	<h:body>
		<h1>Profissionais</h1>
		
		<h:form id="form">
		
			<h:button value="Novo Profissional" outcome="CadastroProfissional"/>
			
			<h:dataTable var="prof" value="#{consultaProfissionalBean.profissionais}"
				width="100%" styleClass="grid" headerClass="cabecalho"
				rowClasses="cor-sim, cor-nao" columnClasses="nome, registro, profissao, data, acoes">
				<h:column>
					<f:facet name="header">
						Nome
					</f:facet>
					<h:outputText value="#{prof.nome}"/>
				</h:column>
				
				<h:column>
					<f:facet name="header">
						Registro
					</f:facet>
					<h:outputText value="#{prof.registro}"/>
				</h:column>
				
				<h:column>
					<f:facet name="header">
						Profissão
					</f:facet>
					<h:outputText value="#{prof.profissao}"/>
				</h:column>
				
				<h:column>
					<f:facet name="header">
						Cadastrado em
					</f:facet>
					<h:outputText value="#{prof.dataCadastro}">
						<f:convertDateTime pattern="dd/MM/yyyy"/>
					</h:outputText>
				</h:column>
				
				<h:column>
					<h:graphicImage value="/imagens/Edit-32-1.png"/>
					
					<h:commandLink action="#{consultaProfissionalBean.excluir}">
						<h:graphicImage value="/imagens/Delete-32-1.png"/>
						<f:setPropertyActionListener target="#{consultaProfissionalBean.profissionalSelecionado}" value="prof"/>
					</h:commandLink>
				</h:column>
			</h:dataTable>
		</h:form>
	</h:body>
</html>

Seu erro provavelmente está aqui:

prof é só uma string. Para passar o objeto prof, coloque entre colchetes:

ErickRAR muito obrigado pela ajuda, era isso mesmo.

Até mais.