Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Não encontra os dados do web service

Boa tarde,

Estou com problemas na hora de buscar os dados do web service, me certifiquei que minhas classes estão funcionando assim como as do primeiro módulo desse curso, mas quando quando rodo minha aplicação ele retorna a mensagem "No records fund"embora meu main feito para teste retorne todos os dados corretamente. Segue o index e minha classe ClienteWebService:

<?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:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Argentum web</title>
</h:head>
<h:body>

    <h:form id="listaNegociacoes">
        <p:dataTable var="negociacao" value="#{ArgentumBean.negociacoes}"
            paginator="true" rows="15">
            <p:column sortBy="#{negociacao.preco}" headerText="Preco">
                <h:outputText value="#{negociacao.preco}" />
            </p:column>

            <p:column sortBy="#{negociacao.quantidade}" headerText="Quantidade">
                <h:outputText value="#{negociacao.quantidade}" />
            </p:column>

            <p:column sortBy="#{negoiacao.volume}" headerText="Volume">
                <h:outputText value="#{negociacao.volume}" />
            </p:column>

            <p:column sortBy="#{negociacao.data}" headerText="Data">
                <h:outputText value="#{negociacao.data}" />
            </p:column>
        </p:dataTable>
    </h:form>

</h:body>
</html>
package argentum.ws;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import argentum.leitores.LeitorXml;
import argentum.modelos.Negociacao;

public class ClienteWebService {

    public static final String URL_WEBSERVICE = "http://argentumws.caelum.com.br/negociacoes";

    HttpURLConnection connection = null;

    public List<Negociacao> getNegociacoes() {

        try {

            URL url = new URL(URL_WEBSERVICE);
            connection = (HttpURLConnection) url.openConnection();
            InputStream content = connection.getInputStream();

            return new LeitorXml().carrega(content);

        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            connection.disconnect();
        }
    }

}

O que poderia estar causando essa falha na busca desses dados?

3 respostas
solução

Daniel, tudo bem ?

O seu bean quando é instanciado ele gera uma instancia no padrão da linguagem a primeira letra é minuscula.

<p:dataTable var="negociacao" value="#{ArgentumBean.negociacoes}"

Tenta fazer assim :

<p:dataTable var="negociacao" value="#{argentumBean.negociacoes}"

Deve solucionar sem problema

Obrigado Matheus era exatamente isso, fiquei um pouco confuso já que o eclipse não apontou nenhum erro de sintaxe.

O eclipse é uma ótima IDE, o problema é que ele não aponta problemas na parte de view, tem uma outra IDE bem bacana, chamada IntelliJ, tem uma versão gratuita e uma versão paga, vê se te interessa, ela ajuda bastante :D