Pessoal,
Estou a tentar implementar um web service para devolver a sigla de um país que é introduzido pelo utilizador. Por exemplo, o utilizador introduz o nome do país e será devolvida a sigla correspondente a esse país.
Os nomes dos países com as siglas encontram-se numa tabela criada préviamente e que já está disponível num servidor. Toda a ligação entre a BD e o Netbeans está configurada e funciona correctamente.
O código que tenho é o seguinte e depois já explico o que não estou a conseguir obter.
@WebService()
public class CountriesService
{
@PersistenceUnit
EntityManagerFactory inf;
@WebMethod(operationName = "retornaSigla")
public String retornaSigla(@WebParam(name = "pais") int index)
{
Pais p = (Pais) inf.createEntityManager().createNamedQuery("Pais.findAll").getResultList().get(index);
return "A sigla é: " + p.getSigla();
}
}
@WebService()
public class CountriesService
{
@PersistenceUnit
EntityManagerFactory inf;
@WebMethod(operationName = "retornaSigla")
public String retornaSigla(@WebParam(name = "pais") int index)
{
Pais p = (Pais) inf.createEntityManager().createNamedQuery("Pais.findAll").getResultList().get(index);
return "A sigla é: " + p.getSigla();
}
}
Como podem ver utilizei uma PersistenceUnit que foi gerada quando criei uma Entity Classes From Database. Tudo direitinho até aqui.
O problema agora é que desta forma que estou a fazer apenas consigo que o utilizador introduza o ÍNDICE (variável index) do país e não o seu nome, ou seja, eu queria que o utilizador pudesse realmente introduzir uma string com o nome do país e não um inteiro que é o índice desse país.
Existe alguma forma de fazer isso? É que o método get(index) apenas aceita inteiros por isso o tenho como int. E o getResultList() não me proporciona nenhum método para retornar nenhuma string, infelizmente, ou então sou eu que estou pensando mal.
Obrigado pela ajuda pessoal e desculpem ser tão longa a explicação.
Joaquim Amorim
Portugal

