[Erro ajax] Error while performing Ajax request: No xml response received -- check server logs

0 respostas
gilvan.sfilho

Boa noite pessoal.
Estou com um probleminha aqui, já fucei tudo e até agora não consegui resolver.

O projeto que estou trabalho utiliza PrimeFaces + OpenFaces + JSF 2 + Hibernate...

Possuo um tabela na qual é possível realizar seleção única de linha.
Após selecionar uma linha e clicar no botão "Editar" abre uma janela modal com os campos da entidade selecionada preenchidos para que possam ser atualizados.
Após atualizar os dados e clicar no botão salvar a página é recarregada com a tabela atualizada.
O problema ocorre a partir desse instante, qualquer operação que tento realizar (selecionar uma linha, cadastrar uma nova entidade) da erro e surgi a mensagem

"Error while performing Ajax request: No xml response received -- check server logs."

OBS: Para criar uma nova entidade utilizo praticamente o mesmo procedimento. Um botão chama um janela, porem com os campos vazios, que apos preenchidos e apos clicar no botao salvar a pagina é recarregada com a tabela atualizada. [Os botões salvar tanto da janela para edicao como para cadastro de nova entidade não usam Ajax].

Espero que possam me ajudar. Abaixo irei postar os códigos fontes.

Página: backlog.xhtml
<?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"
      xmlns:o="http://openfaces.org/"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.prime.com.tr/ui">

    <h:head>
        <title>Scrum: Product Backlog</title>
    </h:head>
    <h:body>

        <h1>Product Backlog</h1>

        <!--****************************************************************************************************************************************-->
        <!-- Janela para cadastro de nova estória **************************************************************************************************-->
        <!--****************************************************************************************************************************************-->
        <o:window id="janelaNovaEstoria" caption="Nova estória" modal="true" modalLayerStyle="background-color:white; opacity:0.5"
                  minWidth="470px" width="470px" minHeight="245px" height="245px" style="max-width: 470px; max-height: 245px">

            <o:captionArea>
                <o:closeWindowButton/>
            </o:captionArea>

            <h:form id="formularioNovaEstoria">

                <table>
                    <tr>
                        <td align="right"><h:outputText value="Descrição: "/></td>
                        <td colspan="3"><h:inputText size="50" value="#{backLogBean.estoriaSelecionada.descricao}"/></td>
                    </tr>

                    <tr>
                        <td align="right"><h:outputText value="Como demonstrar: "/></td>
                        <td colspan="3"><h:inputText size="50" value="#{backLogBean.estoriaSelecionada.comoDemonstrar}"/></td>
                    </tr>

                    <tr>
                        <td align="right"><h:outputText value="Estimativa: "/></td>
                        <td><h:inputText size="2" value="#{backLogBean.estoriaSelecionada.estimativa}"/></td>
                        <td align="right"><h:outputText value="Importância: "/></td>
                        <td><h:inputText size="2" value="#{backLogBean.estoriaSelecionada.importancia}"/></td>
                    </tr>

                    <tr>
                        <td align="right"><h:outputText value="Categoria: "/></td>
                        <td colspan="3"><h:inputText size="50" value="#{backLogBean.estoriaSelecionada.categoria}"/></td>
                    </tr>

                    <tr>
                        <td align="right"><h:outputText value="Notas: "/></td>
                        <td colspan="3"><h:inputText size="50" value="#{backLogBean.estoriaSelecionada.notas}"/></td>
                    </tr>

                    <tr>
                        <td align="right"><h:outputText value="Solicitante: "/></td>
                        <td colspan="3"><h:inputText size="50" value="#{backLogBean.estoriaSelecionada.solicitante}"/></td>
                    </tr>

                    <tr>
                        <td colspan="4" align="right">
                            <o:commandButton value="salvar" action="#{backLogBean.salvarEstoria}" />
                        </td>
                    </tr>
                </table>

            </h:form>
        </o:window>
        <!--****************************************************************************************************************************************-->
        <!-- Fim da Janela para cadastro de nova estória *******************************************************************************************-->
        <!--****************************************************************************************************************************************-->

        <!--****************************************************************************************************************************************-->
        <!-- Janela para edição de estória *********************************************************************************************************-->
        <!--****************************************************************************************************************************************-->
        <o:window id="janelaEditaEstoria" caption="Edição estória" modal="true" modalLayerStyle="background-color:white; opacity:0.5"
                  minWidth="470px" width="470px" minHeight="245px" height="245px" style="max-width: 470px; max-height: 245px">

            <p:outputPanel id="outputEditaEstoria">
                <h:form id="formularioEditaEstoria">

                    <h:inputHidden value="#{backLogBean.estoriaSelecionada.id}" />
                    <h:inputHidden value="#{backLogBean.estoriaSelecionada.status}" />

                    <table>
                        <tr>
                            <td align="right"><h:outputText value="Descrição: "/></td>
                            <td colspan="3"><h:inputText size="50" value="#{backLogBean.estoriaSelecionada.descricao}"/></td>
                        </tr>

                        <tr>
                            <td align="right"><h:outputText value="Como demonstrar: "/></td>
                            <td colspan="3"><h:inputText size="50" value="#{backLogBean.estoriaSelecionada.comoDemonstrar}"/></td>
                        </tr>

                        <tr>
                            <td align="right"><h:outputText value="Estimativa: "/></td>
                            <td><h:inputText size="2" value="#{backLogBean.estoriaSelecionada.estimativa}"/></td>
                            <td align="right"><h:outputText value="Importância: "/></td>
                            <td><h:inputText size="2" value="#{backLogBean.estoriaSelecionada.importancia}"/></td>
                        </tr>

                        <tr>
                            <td align="right"><h:outputText value="Categoria: "/></td>
                            <td colspan="3"><h:inputText size="50" value="#{backLogBean.estoriaSelecionada.categoria}"/></td>
                        </tr>

                        <tr>
                            <td align="right"><h:outputText value="Notas: "/></td>
                            <td colspan="3"><h:inputText size="50" value="#{backLogBean.estoriaSelecionada.notas}"/></td>
                        </tr>

                        <tr>
                            <td align="right"><h:outputText value="Solicitante: "/></td>
                            <td colspan="3"><h:inputText size="50" value="#{backLogBean.estoriaSelecionada.solicitante}"/></td>
                        </tr>

                        <tr>
                            <td colspan="4" align="right">
                                <o:commandButton value="salvar" action="#{backLogBean.updateEstoria}" />
                            </td>
                        </tr>
                    </table>

                </h:form>
            </p:outputPanel>
        </o:window>
        <!--****************************************************************************************************************************************-->
        <!-- Fim da Janela para edição estória *****************************************************************************************************-->
        <!--****************************************************************************************************************************************-->
        <h:form id="form">

            <!--****************************************************************************************************************************************-->
            <!-- Botões ********************************************************************************************************************************-->
            <!--****************************************************************************************************************************************-->
            <p:commandButton value="Nova Estória" oncomplete="O$('janelaNovaEstoria').showCentered();" actionListener="#{backLogBean.novaEstoria}" />
            <p:commandButton value="Editar estória" oncomplete="O$('janelaEditaEstoria').showCentered();" update="outputEditaEstoria"  />
            <p:commandButton value="Deletar estória" action="#{backLogBean.deletarEstoria}" ajax="false" />
            <p:commandButton value="Limpar seleção" update="form:desc" onclick="O$('form:tabelaBacklog').clearSelection();" />
            <!--****************************************************************************************************************************************-->
            <!-- Fim dos Botões ************************************************************************************************************************-->
            <!--****************************************************************************************************************************************-->

            <div id="msgs" style="width: 600px;"> <p:messages globalOnly="true" showDetail="true" showSummary="true" /> </div>

            <!--****************************************************************************************************************************************-->
            <!-- Tabela com as estórias do product backlog *********************************************************************************************-->
            <!--****************************************************************************************************************************************-->
            <p:outputPanel id="outputBacklog">
            <o:dataTable id="tabelaBacklog" value="#{backLogBean.listaEstorias}" var="item"
                         horizontalGridLines="1px dotted gray"
                         verticalGridLines="1px dotted gray"
                         commonHeaderSeparator="3px solid gray"
                         commonFooterSeparator="3px solid gray"
                         headerHorizSeparator="2px solid gray"
                         subHeaderRowSeparator="1px dotted black"
                         footerHorizSeparator="2px solid gray"
                         headerVertSeparator="1px solid gray"
                         footerVertSeparator="1px solid gray">

                <!-- Forma de seleção de conteúdo -->
                <o:singleRowSelection rowData="#{backLogBean.estoriaSelecionada}" render="form:desc" />

                <!-- Cabeçalho da tabela -->
                <f:facet name="header">
                    Product Backlog
                </f:facet>

                <!-- Mensagem de que nenhuma estória foi cadastrada
                exibida quando a tabela estiver vazia-->
                <f:facet name="noDataMessage">
                    Nenhuma estória encontrada
                </f:facet>

                <!-- Colunas da tabela -->
                <o:column style="padding: 5px" >
                    <f:facet name="header">
                        Id
                    </f:facet>
                    <h:outputText value="#{item.id}"/>
                </o:column>

                <o:column width="200" style="padding: 5px">
                    <f:facet name="header">
                        Descriçao
                    </f:facet>
                    <h:outputText value="#{item.descricao}"/>
                </o:column>

                <o:column width="200" style="padding: 3px">
                    <f:facet name="header">
                        Como demonstrar
                    </f:facet>
                    <h:outputText value="#{item.comoDemonstrar}"/>
                </o:column>

                <o:column style="padding: 5px">
                    <!-- Cabeçalho da coluna -->
                    <f:facet name="header">
                        Estimativa
                    </f:facet>

                    <h:outputText value="#{item.estimativa}"/>
                </o:column>

                <o:column style="padding: 5px">
                    <f:facet name="header">
                        Importância
                    </f:facet>
                    <h:outputText value="#{item.importancia}"/>
                </o:column>

                <o:column style="padding: 5px">
                    <f:facet name="header">
                        Categoria
                    </f:facet>
                    <h:outputText value="#{item.categoria}"/>
                </o:column>

                <o:column style="padding: 5px">
                    <f:facet name="header">
                        Notas
                    </f:facet>
                    <h:outputText value="#{item.notas}"/>
                </o:column>

                <o:column style="padding: 5px">
                    <f:facet name="header">
                        Solicitante
                    </f:facet>
                    <h:outputText value="#{item.solicitante}"/>
                </o:column>

                <o:column style="padding: 5px">
                    <f:facet name="header">
                        Status
                    </f:facet>
                    <h:outputText value="#{item.status}"/>
                </o:column>

                <o:column style="padding: 5px">
                    <f:facet name="header">
                        Data Pedido
                    </f:facet>
                    <h:outputText value="#{item.dataPedido}">
                        <f:convertDateTime dateStyle="medium"/>
                    </h:outputText>
                </o:column>

                <o:column style="padding: 5px">
                    <f:facet name="header">
                        Data Entrega
                    </f:facet>
                    <h:outputText value="#{item.dataEntrega}">
                        <f:convertDateTime dateStyle="medium"/>
                    </h:outputText>
                </o:column>
                <!-- Fim das colunas da tabela -->

            </o:dataTable>
            </p:outputPanel>
            <!--****************************************************************************************************************************************-->
            <!-- Fim da tabela com as estórias do product backlog***************************************************************************************-->
            <!--****************************************************************************************************************************************-->
            <h:outputText id="desc" value="#{backLogBean.estoriaSelecionada.descricao}"/>

        </h:form>

    </h:body>
</html>
Bean: BacklogBean.java
package beans;

import Aplicacao.HibernateUtil;
import DAO.EstoriaDao;
import entidades.Estoria;
import java.util.ArrayList;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

@ManagedBean
@RequestScoped
public class BackLogBean {

    private Estoria estoriaSelecionada = new Estoria();
    private ArrayList<Estoria> listaEstorias = null;
    private EstoriaDao dao = new EstoriaDao(HibernateUtil.openSession());

    
    public Estoria getEstoriaSelecionada() {
        return estoriaSelecionada;
    }

    public void setEstoriaSelecionada(Estoria estoriaSelecionada) {
        this.estoriaSelecionada = estoriaSelecionada;
    }

    public ArrayList<Estoria> getListaEstorias() {
        if (listaEstorias == null) {
            listaEstorias = (ArrayList<Estoria>) dao.listar();
        }

        return listaEstorias;
    }

    public void setListaEstorias(ArrayList<Estoria> listaEstorias) {
        this.listaEstorias = listaEstorias;
    }

    //FIM DOS GETTERS E SETTERS

    //Salva um estoria no banco
    public String salvarEstoria() {

        estoriaSelecionada.setStatus(Estoria.PRODUCT_BACKLOG);
        dao.save(estoriaSelecionada);

        estoriaSelecionada = new Estoria();
        listaEstorias = null;

        return "backlog";
    }

    //Deleta uma estoria do banco
    public String deletarEstoria() {
        if (verificaSelecao()) {
            dao.delete(estoriaSelecionada);

            estoriaSelecionada = new Estoria();
            listaEstorias = null;

            return "backlog";
        }
        return null;
    }

    //Atualiza uma estoria no banco
    public String updateEstoria() {
        dao.update(estoriaSelecionada);

        estoriaSelecionada = new Estoria();
        listaEstorias = null;

        return "backlog";
    }

    //Cria uma nova estoria para ser utilizada no formulario de cadastro
    public void novaEstoria(ActionEvent event) {
        estoriaSelecionada = new Estoria();
    }

    //Verifica se existe uma estoria selecionada
    private boolean verificaSelecao() {
        if (estoriaSelecionada == null) {
            FacesContext ctx = FacesContext.getCurrentInstance();
            FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Atenção: ", "Selecione uma estória na lista");
            ctx.addMessage(null, msg);

            return false;
        } else {
            return true;
        }
    }

}

Então, é isso ai pessoal.. Sei que o post ficou um pouco grandinho, mas acho que tem tudo necessário para que alguém possa entender o problema e me ajudar.
Abraços.

Criado 29 de janeiro de 2011
Respostas 0
Participantes 1