Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Livro.xhtml não roda, já o autor.xhtml funciona.

<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" value="#{livroBean.livro.titulo}" />
                <h:outputLabel value="ISBN:" for="isbn" />
                <h:inputText id="isbn" value="#{livroBean.livro.isbn}" />
                <h:outputLabel value="Preço:" for="preco" />
                <h:inputText id="preco" value="#{livroBean.livro.preco}" />
                <h:outputLabel value="Data de Lançamento:" for="dataLancamento" />
                <h:inputText id="dataLancamento" value="#{livroBean.livro.dataLancamento}" />
            </h:panelGrid>
        </fieldset>

        <fieldset>
            <legend>Dados do Autor</legend>
            <h:panelGrid columns="3">

                <h:outputLabel value="Autor:" />
                <h:selectOneMenu value="#{livroBean.autorId}">
                    <f:selectItems value="#{livroBean.autores}" itemValue="#{autor.id}"
                        itemLabel="#{autor.nome}" var="autor" />
                </h:selectOneMenu>
                <h:commandButton action="#{livroBean.adicionarAutor}" value="Adiciona Autor" />
                    <h:dataTable value="#{livroBean.autoresDoLivro}" var="autor">
                    <h:column>
                        <h:outputText value="#{autor.nome}" />
                    </h:column>
                </h:dataTable>
            </h:panelGrid>
        </fieldset>

        <h:commandButton value="Gravar" action="#{livroBean.gravar}" />
    </h:form>

    <h:dataTable value="#{livroBean.livros}" var="livro">
        <h:column>
            <f:facet name="header">Titulo</f:facet>
            <h:outputText value="#{livro.titulo}" />
        </h:column>
        <h:column>
            <f:facet name="header">Preço</f:facet>
            <h:outputText value="#{livro.preco}" />
        </h:column>
        <h:column>
            <f:facet name="header">Data</f:facet>
            <h:outputText value="#{livro.dataLancamento}" />
        </h:column>
    </h:dataTable>
</h:body>

ERROS QUE ACONTECEM:

HTTP Status 500 – Internal Server Error

Type_: Exception Report Message_: javax/enterprise/context/spi/Contextual

Description_: The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception_: javax.servlet.ServletException: javax/enterprise/context/spi/Contextual javax.faces.webapp.FacesServlet.service(FacesServlet.java:683) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Root Cause_: java.lang.NoClassDefFoundError: javax/enterprise/context/spi/Contextual

2 respostas

Tenta por essa dependência no seu pom.xml:

<dependency>
    <groupId>javax.enterprise</groupId>
    <artifactId>cdi-api</artifactId>
    <version>1.2</version>
</dependency>
solução!

Boa noite Otávio, Cara nem lembro qual foi a solução mas já resolvi, um dos muitos problemas que tive foi a falta desse cdi. Infelizmente esse mundo de programação Java são milhares de coisas dependentes de outras tantas e pra quem vem de linguagens antigas que nem existem mais como eu parece muito complicado. Obrigado pela sua atenção.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software