Olá!
Bom galera… Faz uma semana que venho desenvolvendo um novo projeto para o meu TCC, um sistema Web usando JSF, CDI, PrimeFaces e Hibernate, tenho muito pouco contato com projetos para web
Estou com dificuldades em preencher os dados de um selectOneMenu com valores do banco de dados.
Na minha ultima tentativa, não consegui encontrar a origem deste erro:
dez 06, 2016 4:29:59 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException GRAVE: Error Rendering View[/Produto.xhtml] javax.el.ELException: /Produto.xhtml @58,57 value="#{cadastroProdutoBean.ncms}": Error reading 'ncms' on type br.com.hsi.nfe.controller.CadastroProdutoBean$Proxy$_$$_WeldClientProxy at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114) at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182) at javax.faces.component.UISelectItems.getValue(UISelectItems.java:129) at org.primefaces.renderkit.InputRenderer.getSelectItems(InputRenderer.java:54) at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeMarkup(SelectOneMenuRenderer.java:80) at org.primefaces.component.selectonemenu.SelectOneMenuRenderer.encodeEnd(SelectOneMenuRenderer.java:74) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863) at org.primefaces.component.panelgrid.PanelGridRenderer.encodeGridBody(PanelGridRenderer.java:236) at org.primefaces.component.panelgrid.PanelGridRenderer.encodeGridLayout(PanelGridRenderer.java:90) at org.primefaces.component.panelgrid.PanelGridRenderer.encodeEnd(PanelGridRenderer.java:40) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863) at javax.faces.render.Renderer.encodeChildren(Renderer.java:176) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859) at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458) at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337) 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) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:745) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: javax.el.ELException: Error reading 'ncms' on type br.com.hsi.nfe.controller.CadastroProdutoBean$Proxy$_$$_WeldClientProxy at javax.el.BeanELResolver.getValue(BeanELResolver.java:98) 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 org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50) at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109) ... 47 more Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.lang.String.charAt(Unknown Source) at org.hibernate.type.descriptor.java.CharacterTypeDescriptor.wrap(CharacterTypeDescriptor.java:61) at org.hibernate.type.descriptor.java.CharacterTypeDescriptor.wrap(CharacterTypeDescriptor.java:16) at org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:62) at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:47) at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:258) at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:254) at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:244) at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:327) at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2775) at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1741) at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1667) at org.hibernate.loader.Loader.getRow(Loader.java:1556) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:740) at org.hibernate.loader.Loader.processResultSet(Loader.java:985) at org.hibernate.loader.Loader.doQuery(Loader.java:943) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349) at org.hibernate.loader.Loader.doList(Loader.java:2615) at org.hibernate.loader.Loader.doList(Loader.java:2598) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2430) at org.hibernate.loader.Loader.list(Loader.java:2425) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:502) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:371) at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216) at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459) at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1426) at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1398) at org.hibernate.Query.getResultList(Query.java:417) at br.com.hsi.nfe.repository.ProdutoRepository.listaNcm(ProdutoRepository.java:37) at br.com.hsi.nfe.service.GestaoProduto.listaNcm(GestaoProduto.java:39) at br.com.hsi.nfe.service.GestaoProduto$Proxy$_$$_WeldSubclass.listaNcm(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.weld.interceptor.proxy.SimpleInterceptionChain.interceptorChainCompleted(SimpleInterceptionChain.java:51) at org.jboss.weld.interceptor.chain.AbstractInterceptionChain.invokeNextInterceptor(AbstractInterceptionChain.java:96) at org.jboss.weld.interceptor.proxy.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:149) at br.com.hsi.nfe.util.TransacionalInterceptor.invoke(TransacionalInterceptor.java:43) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:74) at org.jboss.weld.interceptor.chain.AbstractInterceptionChain.invokeNext(AbstractInterceptionChain.java:116) at org.jboss.weld.interceptor.chain.AbstractInterceptionChain.invokeNextInterceptor(AbstractInterceptionChain.java:94) at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:43) at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:36) at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:51) at br.com.hsi.nfe.service.GestaoProduto$Proxy$_$$_WeldSubclass.listaNcm(Unknown Source) at br.com.hsi.nfe.controller.CadastroProdutoBean.getNcm(CadastroProdutoBean.java:57) at br.com.hsi.nfe.controller.CadastroProdutoBean.getNcms(CadastroProdutoBean.java:62) at br.com.hsi.nfe.controller.CadastroProdutoBean$Proxy$_$$_WeldClientProxy.getNcms(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at javax.el.BeanELResolver.getValue(BeanELResolver.java:94) ... 53 more
Esses são os dois selectOneMenu que estou tentando preencher (xhtml)
`
<p:outputLabel value="Ncm:" for="ncm" />
<p:selectOneMenu id="ncm"
value="#{cadastroProdutoBean.produto.ncm.id}">
<f:selectItem itemValue="" itemLabel="Selecione..." />
<f:selectItems value="#{cadastroProdutoBean.ncms}"
itemValue="#{cadastroProdutoBean.ncms.get(0)}" />
</p:selectOneMenu>
<p:outputLabel value="Cest:" for="cest" />
<p:selectOneMenu id="cest"
value="#{cadastroProdutoBean.produto.cest.id}">
<f:selectItem itemValue="" itemLabel="Selecione..." />
<f:selectItems value="#{cadastroProdutoBean.cests}"
itemValue="#{cadastroProdutoBean.cests}" />
</p:selectOneMenu>`
o meu Bean:
`
@Inject
private GestaoProduto gestaoProduto;
private static final long serialVersionUID = 1L;
private Produto produto = new Produto();
private List<Ncm> ncm;
private List<SelectItem> ncms;
private List<Cest> cest;
private List<SelectItem> cests;
public void salvar() {
gestaoProduto.salvar(produto);
produto = new Produto();
FacesMessage msg = new FacesMessage("Produto Salvo com sucesso!");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public void excluir() {
gestaoProduto.excluir(produto);
FacesMessage msg = new FacesMessage("Produto removido com sucesso!");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
public Produto getProduto() {
return produto;
}
public List<Ncm> getNcm() {
ncm = gestaoProduto.listaNcm();
return ncm;
}
public List<SelectItem> getNcms() {
ncms = new ArrayList<SelectItem>();
for(Ncm ncm : getNcm()){
ncms.add(new SelectItem(ncm.getId(), ncm.getNcm()));
}
return ncms;
}
public List<Cest> getCest() {
cest = gestaoProduto.listaCest();
return cest;
}
public List<SelectItem> getCests() {
cests = new ArrayList<SelectItem>();
for(Cest cest : getCest()){
cests.add(new SelectItem(cest.getId(), cest.getCest()));
}
return cests;
}
`
Não sei como corrigir este erro se alguém conseguir me ajudar… hehe
Desde já eu agradeço a todos!!!