Ola, precisso desenvolver um servidor web service em java (estou usando tomcat e axis) e como cliente utilizar delphi.
A minha duvida esta no servidor pois precisso retornar o resultset e ler em delphi, mas o delphi não consegue interpretar o resultset.
Alguem tem um exemplo de servidor web service que acesse banco de dados e retorne em wsdl e depois xml?
Meu metodo de retorno de retorno!!! tambem tentei retornar um array mas o delphi não consegue interpretar o xml retornado.
public ResultSet Listar(String cpf) {
sql = "select * from VGRZ_PESSOAS_WS where NUM_CPF_CNPJ = "+cpf;
try {
con = configuracao.getInstancia().getConexao();
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
return rs;
}
catch (SQLException e) {
rs = null;
acao = "erro";
//msg_erro = funcoes.mensagem_BD(e.getErrorCode());
return rs;
}
}
rflprp
Maio 23, 2007, 11:57am
#2
Não retorne o resultset, faça a iteração no resultset, passe os dados para dentro de uma lista e retorne essa lista ou alguma outra collection.
[]´s
Cara já tentei retornar array, objeto, collection mas não deu certo !!! ou é eu q to vacilando. Tem um exemplo??
rflprp
Maio 23, 2007, 12:04pm
#4
AndreCorPian,
O melhor mesmo é retornar um XML, para que em qualquer linguagem, possa se fazer um script ou classe, para ler esse XML e obter os dados.
[quote=fsquadro]AndreCorPian,
O melhor mesmo é retornar um XML, para que em qualquer linguagem, possa se fazer um script ou classe, para ler esse XML e obter os dados.
[/quote]
Concordo com o fsquadro
A ideia do Web Service é retornar sempre um XML para que seja implementado em qualquer outra linguagem.
rflprp
Maio 23, 2007, 1:15pm
#7
Calma.
O método dele deve retornar uma collection, ele não precisa retornar um xml, já que vai utilizar WS.
A própria implementação do WS já vai fazer isso baseado no WSDL dele.
rflprp
Maio 23, 2007, 1:17pm
#8
Compementando:
Faz um porttype que chama esse DAO, e disponibiliza o método pro serviço.
[]´s
O Rafael acho que vc entendeu o que eu quero.
Desculpe a burrice mas “porttype que chama esse DAO” ??? como assim?
rflprp
Maio 23, 2007, 1:57pm
#10
[quote=AndreCorPian]O Rafael acho que vc entendeu o que eu quero.
Desculpe a burrice mas “porttype que chama esse DAO” ??? como assim?[/quote]
Burrice é não perguntar
Porttype nada mais é do que a classe que contém os métodos que vão ser disponibilizados.
Ex (to fazendo sem editor, só pra ter idéia):
public class PessoasPorttype {
private PessoasDAO dao;
// Isso aqui pois aconselho a usar Dependency Injection (Ioc, enfim...)
public PessoasPorttype(PessoasDAO pDao) {
this.dao = pDao;
}
public Collection obterPessoas() {
return this.dao.obterPessoas();
}
}
Não é legal disponibilizar o DAO direto.
É mais ou menos isso.
[]´s
rflprp
Maio 23, 2007, 2:01pm
#11
Complementando:
Aí você disponibilizaria o método obterPessoas do porttype, pois se um dia você tiver que mudar a forma de buscar as pessoas, pros clientes do WS isso será transparente.
[]´s