Oi, gente. Bom dia!
Sou calouro em WS. Criei um serviço e um cliente web. O serviço deve me retornar registros de uma tabela da minha BD. Abaixo, seguem os trechos(tô usando NetBeans 5.5 e PostreSQL 8.1):
//Trecho do cliente JSP
<%
try
{
app.ServicoService service = new app.ServicoService();
app.Servico port = service.getServicoPort();
// TODO process result here
java.util.List<java.lang.Object> result = port.listaContexto();
out.println("Result = " + result.size());
} catch (Exception ex)
{
…
}
%>
//Trecho que funciona
public class Servico
{
…
private int coUsuario;
private int coContextoUsuario;
private String noContextoUsuario;
public void setCoUsuario(int coUsuario)
{
this.coUsuario = coUsuario;
}
public void setCoContextoUsuario(int coContextoUsuario)
{
this.coContextoUsuario = coContextoUsuario;
}
...
@WebMethod
public ArrayList listaContexto()
{
...
String sql = "SELECT co_usuario, co_contexto_usuario " +
" FROM tb_contexto_usuario" +
" ORDER BY no_contexto_usuario";
...
ArrayList result = new ArrayList();
try
{
while (rs.next())
{
[i] [b]Servico serv = new Servico();
/*
serv.setCoUsuario(rs.getInt("co_usuario"));
serv.setCoContextoUsuario(rs.getInt("co_contexto_usuario"));
result.add(serv);
*/
result.add("TESTE"); [/b] [/i]
}
}
return result;
}
catch (java.sql.SQLException e)
{
...
}
}
Usando o trecho acima, o cliente recebe e imprime o valor 5(que é a qtde d registros retornados pelo SELECT. No entanto, se o trecho abaixo for executado, o cliente nada imprime. Percebam, que a única diferença entre o trecho acima e o abaixo é que o de baixo o trecho
serv.setCoUsuario(rs.getInt(“co_usuario”));
serv.setCoContextoUsuario(rs.getInt(“co_contexto_usuario”));
result.add(serv);
não está comentado.
//Trecho do serviço web
public class Servico
{
…
private int coUsuario;
private int coContextoUsuario;
private String noContextoUsuario;
public void setCoUsuario(int coUsuario)
{
this.coUsuario = coUsuario;
}
public void setCoContextoUsuario(int coContextoUsuario)
{
this.coContextoUsuario = coContextoUsuario;
}
...
@WebMethod
public ArrayList listaContexto()
{
...
String sql = "SELECT co_usuario, co_contexto_usuario " +
" FROM tb_contexto_usuario" +
" ORDER BY no_contexto_usuario";
...
ArrayList result = new ArrayList();
try
{
while (rs.next())
{
[i] [b] Servico serv = new Servico();
serv.setCoUsuario(rs.getInt("co_usuario"));
serv.setCoContextoUsuario(rs.getInt("co_contexto_usuario"));
result.add(serv); [/b] [/i]
}
}
return result;
}
catch (java.sql.SQLException e)
{
...
}
}
Desde já, agradeço.