Bom Dia Galera,
To com um problema chato, poderiam me ajudar?
Tenho um xhtml, que chama dois ManagedBean, um eu uso como repositório de dados, com ViewScope e outro managedBean com RequestScope, para fazer as ações da página.
Quando o xhtml faz uma ação de salvar de salvar, ocorre o seguinte erro:
HTTP Status 500 -
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Não é possível definir a propriedade metaTagBean para o bean gerenciado metaTagController.
root cause
com.sun.faces.mgbean.ManagedBeanCreationException: Não é possível definir a propriedade metaTagBean para o bean gerenciado metaTagController.
root cause
javax.el.ELException: java.lang.IllegalArgumentException: Cannot convert metaTagBean of type class java.lang.String to class br.com.correiodelins.web.metaTags.MetaTagBean
root cause
java.lang.IllegalArgumentException: Cannot convert metaTagBean of type class java.lang.String to class br.com.correiodelins.web.metaTags.MetaTagBean
+++++++++++++++++++++
WARNING: PWC4011: Unable to set request character encoding to UTF-8 from context /CorreioDeLinsWeb, because request parameters have already been read, or ServletRequest.getReader() has already been called
WARNING: Não é possível definir a propriedade metaTagBean para o bean gerenciado metaTagController.
com.sun.faces.mgbean.ManagedBeanCreationException: Não é possível definir a propriedade metaTagBean para o bean gerenciado metaTagController.
at com.sun.faces.mgbean.ManagedBeanBuilder$BakedBeanProperty.set(ManagedBeanBuilder.java:615)
at com.sun.faces.mgbean.ManagedBeanBuilder.buildBean(ManagedBeanBuilder.java:133)
at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:104)
at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:244)
at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:116)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:103)
at com.sun.el.parser.AstValue.getTarget(AstValue.java:149)
at com.sun.el.parser.AstValue.invoke(AstValue.java:237)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:302)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
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.StandardWrapper.service(StandardWrapper.java:1542)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
Caused by: javax.el.ELException: java.lang.IllegalArgumentException: Cannot convert metaTagBean of type class java.lang.String to class br.com.correiodelins.web.metaTags.MetaTagBean
at com.sun.el.ExpressionFactoryImpl.coerceToType(ExpressionFactoryImpl.java:73)
at com.sun.faces.el.ELUtils.coerce(ELUtils.java:536)
at com.sun.faces.mgbean.BeanBuilder$Expression.evaluate(BeanBuilder.java:592)
at com.sun.faces.mgbean.ManagedBeanBuilder$BakedBeanProperty.set(ManagedBeanBuilder.java:606)
... 46 more
Aparentemente não acha o ManagedBean.
Segue o xhtml e os managedBean:
<!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: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">
<ui:composition template="/admin/template/template.xhtml">
<ui:define name="conteudo">
<h:form id="form">
<h:panelGroup id="novaTag" layout="block" style="float:left;">
<h:panelGrid id="gridNovaTag" columns="1" cellspacing="10">
<h:outputLabel id="outputLabelTag" value="Tag" for="inputTextTag"/>
<p:inputText id="inputTextTag" value="#{metaTagBean.metaTag.tag}" size="150" />
<h:panelGroup style="float:right;">
<p:commandButton id="commandButtonLimpar" value="Limpar" icon="ui-icon-document"/>
<p:commandButton id="commandButtonExcluir" value="Excluir" icon="ui-icon-trash"/>
<p:commandButton id="commandButtonAlterar" value="Alterar" icon="ui-icon-copy"/>
<p:commandButton id="commandButtonSalvar" value="Salvar" action="#{metaTagController.salvar}" ajax="false" icon="ui-icon-check" update="dataTable"/>
</h:panelGroup>
</h:panelGrid>
</h:panelGroup>
<h:panelGroup id="listarTags" layout="block" style="width:500px; float:right;">
<p:dataTable id="dataTable" var="tags" value="#{metaTagBean.metaTags}" rows="10" paginator="true"
rowKey="#{tags.id}" selection="#{metaTagBean.metaTag}" selectionMode="single">
<p:ajax event="rowSelect" update=":form:gridNovaTag" />
<f:facet name="header">
Tags Cadastradas
</f:facet>
<p:column id="tagNome" sortBy="#{tags.tag}" filterBy="#{tags.tag}">
<f:facet name="header">
<h:outputText value="Tag" />
</f:facet>
<h:outputText value="#{tags.tag}" />
</p:column>
</p:dataTable>
</h:panelGroup>
</h:form>
</ui:define>
</ui:composition>
</html>
@ManagedBean
public class MetaTagController {
@EJB
private MetaTagBusinessRemote metaTagBusiness;
@ManagedProperty("metaTagBean")
private MetaTagBean metaTagBean;
public MetaTagController(){
}
public void salvar(){
if(this.valida(this.metaTagBean.getMetaTag())){
try{
this.metaTagBusiness.salvar(this.metaTagBean.getMetaTag());
FacesUtils.getFacesMessage(FacesMessage.SEVERITY_INFO, "Sucesso", "Tag Salva com sucesso");
}catch (TagJaCadastradaException e) {
FacesUtils.getFacesMessage(FacesMessage.SEVERITY_INFO, "Erro", "Tag já cadastrada");
}catch (Exception e) {
e.printStackTrace();
}
}
}
public boolean valida(MetaTag metaTag) {
if(metaTag == null){
return false;
}
if(metaTag.getTag().equals("")){
FacesUtils.getFacesMessage(FacesMessage.SEVERITY_ERROR, "Erro", "Preencha o campo 'Tag' corretamente");
return false;
}
return true;
}
public MetaTagBean getMetaTagBean() {
return metaTagBean;
}
public void setMetaTagBean(MetaTagBean metaTagBean) {
this.metaTagBean = metaTagBean;
}
}
@ManagedBean
@ViewScoped
public class MetaTagBean {
private MetaTag metaTag;
private List<MetaTag> metaTags;
@EJB
private MetaTagBusinessRemote metaTagBusiness;
public MetaTagBean(){
}
public MetaTag getMetaTag() {
if(this.metaTag == null){
this.metaTag = new MetaTag();
}
return metaTag;
}
public void setMetaTag(MetaTag metaTag) {
this.metaTag = metaTag;
}
public List<MetaTag> getMetaTags() {
try{
if(this.metaTags == null){
this.metaTags = this.metaTagBusiness.listar();
}
}catch (Exception e) {
e.printStackTrace();
}
return metaTags;
}
public void setMetaTags(List<MetaTag> metaTags) {
this.metaTags = metaTags;
}
}
Agradeço a atenção.