O objetivo é simples, escrever no console a mensagem "Gravando livro". Quando rodo o projeto aparece a tela com o formulário, mas quando aperto o Button "Gravar" esse erro acontece. O código é o mesmo da primeira parte da aula. A versão da biblioteca "javax.faces-2.1.14.jar" e a configuração do projeto, são os mesmos da aula. As únicas coisas diferentes são a versão do Tomcat (estou utilizando a versão 9.0) e a versão do java(estou utilizando o java 12).
O erro que aparece no console:
WARNING: #{livroBean.gravar}: javax.el.PropertyNotFoundException: /livro.xhtml @20,84 action="#{livroBean.gravar}": Target Unreachable, identifier [livroBean] resolved to null
javax.faces.FacesException: #{livroBean.gravar}: javax.el.PropertyNotFoundException: /livro.xhtml @20,84 action="#{livroBean.gravar}": Target Unreachable, identifier [livroBean] resolved to null
`
O código da pagina livro.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:body>
<h1>Novo Livro</h1>
<h:form>
<fieldset>
<legend>Dados do Livro</legend>
<h:panelGrid columns="2">
<h:outputLabel value="Titulo:" for="titulo" />
<h:inputText id="titulo" />
<h:outputLabel value="ISBN:" for="isbn" />
<h:inputText id="isbn" />
<h:outputLabel value="Preço:" for="preco" />
<h:inputText id="preco" />
<h:outputLabel value="Data de Lançamento:" for="dataLancamento" />
<h:inputText id="dataLancamento" />
<h:commandButton value="Gravar" action="#{livroBean.gravar}"/>
</h:panelGrid>
</fieldset>
</h:form>
</h:body>
</html>
O código da classe LivroBean.java:
import javax.faces.bean.ManagedBean;
@ManagedBean
public class LivroBean {
public void gravar() {
System.out.println("Gravando livro ");
}
}