Duvidas WebService
Preciso criar um webservice em delphi que seja consumido em uma aplicação java.
Esse webservice sera responsavel por fazer um select no banco de dados (firebird) e minha aplicação java mostrar os dados.
Alguem pode indicar um material ou mostrar como posso fazer. Obrigado
Esse webservice sera responsavel por fazer um select no banco de dados (firebird) e minha aplicação java mostrar os dados.
Alguem pode indicar um material ou mostrar como posso fazer. Obrigado
Peterson
Curtidas 0
Respostas
Joel Rodrigues
28/02/2012
Dá uma olhada nesses links, são um pouco antigos mas podem ajudar.
http://www.planetadelphi.com.br/artigo/36/webservices---1%C2%AA-parte-(com-imagens)
http://www.planetadelphi.com.br/artigo/37/webservices---2%C2%AA-parte-(com-imagens)
http://www.planetadelphi.com.br/artigo/36/webservices---1%C2%AA-parte-(com-imagens)
http://www.planetadelphi.com.br/artigo/37/webservices---2%C2%AA-parte-(com-imagens)
GOSTEI 0
Guinther Pauli
28/02/2012
Olá Alisson
Depende se o seu servidor vai ser feito em Delphi Win32 ou Delphi .NET (Prism).
Se for .NET (Delphi Prism), você pode criar um Web Services que serialize um XmlDocument (System.Xml) ou um DataSet (System.Data) ou ainda usar Entity Framework com WCF, nesse caso um WCF Data Service pode serializar um modelo inteiro para XML ou JSON para ser consumido por aplicações Java por exemplo. Se for Java Web, melhor ainda pois Json é facilmente consumido por Ajax.
Se for Delphi Win32, existe um pequeno problema. O ClientDataSet gera um XML que padrão Data Packet, um pouco diferente daqueles gerados em .NET, ou seja, será um pouco mais difícil manipulá-los no Java (mas é possível, já fizemos em um projeto). Eles tem um formato de nodes MetaData e RowData. Uma opção seria transformar esse XMLDataPacket a ser devolvido por seu Web Service em um Xml fora do formato DataPacket. Outra opção, mais trabalhosa, seria serializar TXmlDocuments, dá mais trabalho no server, mas menos no client. E finalmente, se o server for DataSnap nas últimas versões do Delphi (2010, XE, XE2), existe opção para serializar em XML e JSON também.
Att,
Guinther Pauli
https://www.devmedia.com.br/guintherpauli
http://www.twitter.com/guintherpauli
http://facebook.com/guinther.pauli
http://gpauli.com
Depende se o seu servidor vai ser feito em Delphi Win32 ou Delphi .NET (Prism).
Se for .NET (Delphi Prism), você pode criar um Web Services que serialize um XmlDocument (System.Xml) ou um DataSet (System.Data) ou ainda usar Entity Framework com WCF, nesse caso um WCF Data Service pode serializar um modelo inteiro para XML ou JSON para ser consumido por aplicações Java por exemplo. Se for Java Web, melhor ainda pois Json é facilmente consumido por Ajax.
Se for Delphi Win32, existe um pequeno problema. O ClientDataSet gera um XML que padrão Data Packet, um pouco diferente daqueles gerados em .NET, ou seja, será um pouco mais difícil manipulá-los no Java (mas é possível, já fizemos em um projeto). Eles tem um formato de nodes MetaData e RowData. Uma opção seria transformar esse XMLDataPacket a ser devolvido por seu Web Service em um Xml fora do formato DataPacket. Outra opção, mais trabalhosa, seria serializar TXmlDocuments, dá mais trabalho no server, mas menos no client. E finalmente, se o server for DataSnap nas últimas versões do Delphi (2010, XE, XE2), existe opção para serializar em XML e JSON também.
Att,
Guinther Pauli
https://www.devmedia.com.br/guintherpauli
http://www.twitter.com/guintherpauli
http://facebook.com/guinther.pauli
http://gpauli.com
GOSTEI 0
Peterson
28/02/2012
Obrigado pelas informações e pela atenção. Então optei por desenvolver o webservice em java, e consegui fazer o retorno em xml utilizando a classe XStream, que por sinal excelente classe. Desenvolvi o webservice de forma semelhante ao do artigo da revista easy java ed 16, porém agora estou esbarrando na questão de publicar o serviço em um servidor web, pois consegui até consumir a wsdl (gerada como localhost) no delphi. Agora surgiram milhoes de duvidas como publicar meu serviço.
Agradeço pelo retorno, se caso alguem souber essa minha duvida agradeço.
Agradeço pelo retorno, se caso alguem souber essa minha duvida agradeço.
GOSTEI 0