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

XML Parsing Error: no root element found

Estou tentando buscar via AJAX uma String em formato JSON, porém esta dando o seguinte erro: XML Parsing Error: no root element found Location: http://localhost:8080/hidro-sistemas/exec?tarefa=JsonWrite Line Number 1, Column 1:

Os dados para criar o JSON sao buscados do meu banco de dados da seguinte forma:

    ProdutoDAO produtoDAO = new ProdutoDAO(con);
    List<Produto> listaProdutos = new ArrayList<>();
    listaProdutos.addAll(produtoDAO.listaProdutos());

    ArrayList<JSONObject> json = new ArrayList<>();

    for (Produto produtos : listaProdutos) {
        JSONObject jobj = new JSONObject();
        jobj.put("descricao", produtos.getDescricao());
        json.add(jobj);
        jobj.put("uidade", produtos.getUnidade());
        json.add(jobj);


    return json.toString();
}

Fiz uma classe de teste e ele esta retornando uma String no formato JSON: [{"descricao":"IS500000212 - BERMAD VALVULA DE AR ANTIVACUO 1/2'","unidade":"PC"}, ...]

porem quando faço o AJAX no JQUERY da o erro, estou fazendo da seguinte forma:

$(function(){
   $.getJSON("http://localhost:8080/hidro-sistemas/exec?tarefa=JsonWrite", function(retorno){
    var dados = JSONParse(retorno);
    //var dados = JSON.parse(retorno);
    console.log(retorno);    
});
 });

OBS.: Neste codigo .js não esta chamando o autocomplete pois estou testando se esta retornando o que preciso.

Também tentei escrever um arquivo .json e retornar o uma String com a URI dele no servidor, e acontece o mesmo erro.

2 respostas

Bom dia Lucas, você tem certeza que o seu método http://localhost:8080/hidro-sistemas/exec?tarefa=JsonWrite está trazendo a informação que você está esperando receber e no formato que você deseja?

Este erro que está acontecendo ocorre no momento do parse do JSON, porém o que está retornado não está no formato e é exibido essa mensagem.

$.ajax({
    type: "get",
    url: "http://localhost:8080/hidro-sistemas/exec?tarefa=JsonWrite",
    dataType: "json",
    success: function(data) {
        console.log(data):
    },
    error: function(xhr, status) {
        console.log("Algum erro"):
    }
});

Ao executar essa requisição acima o que é exibido no seu console?

solução!

Já resolvi o problema. Eu criei um arquivo .json localmente e na url coloquei o caminho dele.