Retornar uma lista de nomes de países num webservice

Olá pessoal,

Estou a implementar web service com um método para retornar uma lista de nomes de países de uma BD externa.

O objectivo é não ter parametros de entrada no método e retornar apenas a lista de nomes (descricao) dos paises de uma tabela chamada “Paises” que já criei na BD.

Até agora o código que tenho é este:

@WebMethod(operationName = "Lista")
    public List<Pais> retornaLista()
    {
        Query query = inf.createEntityManager().createNativeQuery("SELECT descricao FROM Pais");

        @SuppressWarnings("unckecked")
        List<Pais> listaP = query.getResultList();

        return listaP;
    }

Não estou a conseguir obter nada e dá sempre excepção. Não sei se tenho aí alguma coisa ruim ou mal nesse código.

Alguém sabe como resolver esse problema?

PS - O objectivo final disso é implementar o código XML criado, numa página web, para o utilizador poder clicar no serviço e preencher uma comboBox com os nomes dos países… :slight_smile:

Obrigado pessoal,

J Amorim

E qual é a exception que está gerando?

Posta ela, fica mais fácil para visualizar o que pode estar errado.

1 curtida

vc nao pode usar JPQL ao inves de uma query nativa ?

observe que seu retorno sao apenas descriçoes e vc está esperando o retorno de uma lista de Pais.

faça a query:

Query query = inf.createEntityManager().createQuery("SELECT p FROM Pais p");  

abrasssss

1 curtida

Obrigado pela ajuda pessoal

Parece que estou a obter todos os 201 nomes dos países da tabela que está na BD, mas vêm todos escritos de uma forma muito estranha, parece em código.

Exemplo: service.Pais@1d8c933 <----- este valor retornado deveria ser o nome “Afeganistão” na BD…

Tá estranho…

O erro que estou a obter é:

lista Method invocation


Method parameter(s)
Type Value


Method returned
java.util.List : “[service.Pais@1d8c933, service.Pais@1815d3f, service.Pais@110c4a, service.Pais@13dd997, service.Pais@19865dd, service.Pais@47961d, service.Pais@1d06be9, service.Pais@5cc444, service.Pais@598704, service.Pais@1af2c4e, service.Pais@185bbe6, service.Pais@f32e22, service.Pais@159fa44, service.Pais@3da7e0, service.Pais@1d8a1d2, service.Pais@168163a, service.Pais@8b7400, service.Pais@16ce19f, service.Pais@1509bca, service.Pais@123ef8d, service.Pais@4417b1, service.Pais@6f98e4, service.Pais@9eba9a, service.Pais@ecf38d, service.Pais@69db97, service.Pais@1cfad48, service.Pais@1798008, service.Pais@1c4b701, service.Pais@1cae42f, service.Pais@14af088, service.Pais@f5ace1, service.Pais@128ed66, service.Pais@1f9c736, service.Pais@185b26b, service.Pais@84bbb1, service.Pais@3e66dc, service.Pais@d2fdd8, service.Pais@17a9c6, service.Pais@18b1cc7, service.Pais@e707c, service.Pais@1faf58a, service.Pais@10e3910, service.Pais@c47302, service.Pais@15ac84c, service.Pais@1141926, service.Pais@7f344c, service.Pais@1427417, service.Pais@1d3a831, service.Pais@c7352f, service.Pais@74c5fd, service.Pais@726c75, service.Pais@2e7fcf, service.Pais@c9226b, service.Pais@f2b3b8, service.Pais@1f50c15, service.Pais@ec7126, service.Pais@f87d71, service.Pais@1f3a917, service.Pais@1e23043, service.Pais@ce9744, service.Pais@12d0750, service.Pais@13b4707, service.Pais@b44741, service.Pais@1b229e6, service.Pais@1dccd59, service.Pais@12d9110, service.Pais@8ee44e, service.Pais@12ee00c, service.Pais@77346f, service.Pais@137a37, service.Pais@bcd4d2, service.Pais@1383be3, service.Pais@e3b6c2, service.Pais@1f3929a, service.Pais@1df1c7, service.Pais@1ec5464, service.Pais@989519, service.Pais@164ac00, service.Pais@584e5c, service.Pais@1808579, service.Pais@bb0c54, service.Pais@26872d, service.Pais@174c998, service.Pais@5f262f, service.Pais@c41359, service.Pais@d241af, service.Pais@1d64ba8, service.Pais@12e9e, service.Pais@19bbc6a, service.Pais@16ee670, service.Pais@1dacd07, service.Pais@1cab29a, service.Pais@93a48f, service.Pais@118cb75, service.Pais@d58b9c, service.Pais@1c0b452, service.Pais@7e9952, service.Pais@183dbdf, service.Pais@1d84dd9, service.Pais@1df10aa, service.Pais@1bf34f1, service.Pais@2cce99, service.Pais@1afdd79, service.Pais@f53d07, service.Pais@79d7af, service.Pais@13f2db0, service.Pais@d08ac3, service.Pais@14609a6, service.Pais@12396df, service.Pais@1861550, service.Pais@1e16207, service.Pais@1eabd9b, service.Pais@463b48, service.Pais@de2452, service.Pais@22af05, service.Pais@1109435, service.Pais@17244f2, service.Pais@10c8019, service.Pais@1ae09a5, service.Pais@fb577a, service.Pais@12c3a46, service.Pais@a607d0, service.Pais@4b0cec, service.Pais@13d79e7, service.Pais@10e45f2, service.Pais@123128, service.Pais@594c9e, service.Pais@b554bf, service.Pais@ced131, service.Pais@8082d, service.Pais@15101f8, service.Pais@1587bed, service.Pais@302b40, service.Pais@67863b, service.Pais@9dc317, service.Pais@1731b51, service.Pais@69f14, service.Pais@b60732, service.Pais@927151, service.Pais@4d8f99, service.Pais@e8b17, service.Pais@cdc966, service.Pais@617930, service.Pais@15b72d3, service.Pais@cf7f71, service.Pais@b7fe30, service.Pais@1911c5a, service.Pais@1dc66d9, service.Pais@e45b92, service.Pais@37e43d, service.Pais@1699d6d, service.Pais@de87d6, service.Pais@1a8026f, service.Pais@137d7b2, service.Pais@1321e1c, service.Pais@156d044, service.Pais@832a47, service.Pais@14cb018, service.Pais@1bd1612, service.Pais@f40c1f, service.Pais@480021, service.Pais@100a3ce, service.Pais@1025a1c, service.Pais@169f638, service.Pais@1a40fad, service.Pais@131f4, service.Pais@76ae13, service.Pais@19e9f2e, service.Pais@e4a189, service.Pais@293102, service.Pais@509d43, service.Pais@84d143, service.Pais@1c69662, service.Pais@bb3542, service.Pais@a5ac8a, service.Pais@e2a6b7, service.Pais@2f59a8, service.Pais@a755ed, service.Pais@1fa5dd1, service.Pais@25683b, service.Pais@1de1649, service.Pais@18922f7, service.Pais@569d7c, service.Pais@7d3b24, service.Pais@1b5c925, service.Pais@1a8dc9d, service.Pais@12bdcc9, service.Pais@ac16e0, service.Pais@11ea37, service.Pais@27fe76, service.Pais@1b3264b, service.Pais@973809, service.Pais@1dff3e5, service.Pais@5685a, service.Pais@1062a45, service.Pais@1c12e14, service.Pais@1b8345c, service.Pais@758d1a, service.Pais@182d147, service.Pais@179c689, service.Pais@1d96efa]”

SOAP Request


<?xml version="1.0" encoding="UTF-8"?>

<S:Envelope xmlns:S=“http://schemas.xmlsoap.org/soap/envelope/”>
<S:Header/>
<S:Body>
<ns2:Lista xmlns:ns2=“http://service/”/>
</S:Body>
</S:Envelope>


SOAP Response
Service invocation threw an exception with message : com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence.; Refer to the server log for more details

amigo, ao postar erros e etc, poste tambem seu codigo assim fica mais facil auxilia-lo

abrasss