Olá pessoal,
estou fazendo uma aplicação JSF, utilizando um Web Service. Os métodos do WS já testei previamente e todos estão ok.
Só que quando faço alguma operação na view, dá a exceção abaixo. Alguém sabe o que possa ser?
Pesquisei e encontrei que seria necessário adicionar 2 jars, o el-api.jar e o el-impl.jar, e tbm criar um arquivo beans.xml, mas ambas alterações, não resolveram.
Outra observação é que, na minha aplicação web, eu não estou utlizando o faces-config.xml, pois se eu utilizá-lo, a página xhtml vem em branco.
AVISO: /index.xhtml @12,96 value="#{ProdutoBean.descricao}": Target Unreachable, identifier 'ProdutoBean' resolved to null
javax.el.PropertyNotFoundException: /index.xhtml @12,96 value="#{ProdutoBean.descricao}": Target Unreachable, identifier 'ProdutoBean' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
at javax.faces.component.UIInput.validate(UIInput.java:960)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
at javax.faces.component.UIInput.processValidators(UIInput.java:698)
at javax.faces.component.UIForm.processValidators(UIForm.java:253)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
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:1539)
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 com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:232)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
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:662)
Abaixo seguem os códigos:
Bean
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.produto.bean;
import com.produto.ws.ProdutoWS;
import com.produto.ws.ProdutoWS_Service;
/**
*
* @author andersonribeiro
*/
public class ProdutoBean {
private long codigo;
private String descricao = "";
private double preco = 0;
private int quantidade = 0;
private boolean save = false;
private boolean remove = false;
private boolean edit = false;
private boolean list = false;
private String resultado = "";
private ProdutoWS service;
public ProdutoBean() {
ProdutoWS_Service servicos = new ProdutoWS_Service();
service = servicos.getProdutoWSPort();
}
public long getCodigo() {
return codigo;
}
public void setCodigo(long codigo) {
this.codigo = codigo;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
public boolean isEdit() {
return edit;
}
public void setEdit(boolean edit) {
this.edit = edit;
}
public boolean isList() {
return list;
}
public void setList(boolean list) {
this.list = list;
}
public boolean isRemove() {
return remove;
}
public void setRemove(boolean remove) {
this.remove = remove;
}
public boolean isSave() {
return save;
}
public void setSave(boolean save) {
this.save = save;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
public String getResultado() {
return resultado;
}
public void setResultado(String resultado) {
this.resultado = resultado;
}
public ProdutoWS getService() {
return service;
}
public void setService(ProdutoWS service) {
this.service = service;
}
public void cadastrar() {
if (service.cadastrarProduto(descricao, preco, quantidade) == true) {
save = true;
}
}
public void excluir() {
if (service.removerProduto(codigo) == true) {
remove = true;
}
}
public void alterar() {
if (service.atualizarProduto(codigo, descricao, preco, quantidade) == true) {
edit = true;
}
}
public void listar() {
resultado = service.buscarProduto(codigo);
list = true;
}
}
A view
<?xml version='1.0' encoding='UTF-8' ?>
<!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">
<h:head>
<title>Gerenciamento de Produtos</title>
</h:head>
<h:body>
<h:outputLabel value="Cadastrar Produto"/>
<h:form>
<h:outputLabel value="Descrição: "/><h:inputText value="#{ProdutoBean.descricao}"/><br/>
<h:outputLabel value="Preço: "/><h:inputText value="#{ProdutoBean.preco}"/><br/>
<h:outputLabel value="Quantidade: "/><h:inputText value="#{ProdutoBean.quantidade}"/><br/>
<h:commandButton value="Salvar" action="#{ProdutoBean.cadastrar}"/>
<h:outputLabel rendered="#{ProdutoBean.save}" value="Produto cadastrado com sucesso!"/>
</h:form>
<p/><h:outputLabel value="Excluir Produto"/>
<h:form>
<h:outputLabel value="Código: "/><h:inputText value="#{ProdutoBean.codigo}"/><br/>
<h:commandButton value="Excluir: " action="#{ProdutoBean.excluir}"/>
<h:outputLabel rendered="#{ProdutoBean.remove}" value="Produto excluído com sucesso!"/>
</h:form>
<p/><h:outputLabel value="Editar Produto"/>
<h:form>
<h:outputLabel value="Código: "/><h:inputText value="#{ProdutoBean.codigo}"/><br/>
<h:outputLabel value="Descrição: "/><h:inputText value="#{ProdutoBean.descricao}"/><br/>
<h:outputLabel value="Preço: "/><h:inputText value="#{ProdutoBean.preco}"/><br/>
<h:outputLabel value="Quantidade: "/><h:inputText value="#{ProdutoBean.quantidade}"/><br/>
<h:commandButton value="Editar: " action="#{ProdutoBean.alterar}"/>
<h:outputLabel rendered="#{ProdutoBean.edit}" value="Produto editado com sucesso!"/>
</h:form>
<p/><h:outputLabel value="Listar Produto"/>
<h:form>
<h:outputLabel value="Código: "/><h:inputText value="#{ProdutoBean.codigo}"/><br/>
<h:commandButton value="Listar" action="#{ProdutoBean.listar}"/>
<h:outputLabel rendered="#{ProdutoBean.list}" value="#{ProdutoBean.resultado}"/>
</h:form>
</h:body>
</html>
o web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
E o beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>