Preciso fazer um webservice para aproveitar um serviço já existe.
Como já tenho vários beans(POJOS) para o model pensei em aproveitá-los para usar no webservice, ou seja, o cliente me passaria como parâmetro o objeto e todas suas dependências.
Bom, só que este bean, Trip, tem muitas dependencias com uma lista de objetos Parcel, um Toll, um City, e vários outros que não necessariamente são requeridos para fazer a operação de inclusão de um a Viagem(Trip).
Pergunta:
Seria interessante reutilzar este bean e suas dependências ou seria melhor criar beans específicos com apenas os atributos necessários para o webservice e depois setar todos os parâmetros nos beans Originais?
Tipo, WSTrip, WSToll, etc…
Bom, creio que se os dados a mais não forem tantos assim, e não impactar seriamente na performance, eu até usaria os mesmos POJOs.
Você tem que pesar.
Será que mais duplicar código ou mandar alguns dados a mais?
T
thingol
Web Services (tanto faz se você está usando um “servlet endpoint” ou um “stateless session EJB endpoint”) têm o mesmo problema de EJBs acessados pela Remote Interface (na verdade até pior, porque XML gasta mais rede que RMI/IIOP), ou seja, não é bom usá-los como se fossem classes Java normais; isso devido aos problemas de tempo gasto para comunicação e serialização dos dados via XML.
Veja se vale a pena fazer como a sua segunda alternativa. Se o tal serviço não é muito usado nem vale a pena ficar se preocupando com versões especiais dos POJOs. Se ele é muito usado aí você precisa se preocupar.
C
chicoria
É justamente pela performance que estou pensando nisso.
Outra questão que me detêm é quanto ao retorno de erros para os clientes do webservice.
Quando o cliente invoca um método do webservice e caso ocorra algum problema qual seria a melhor forma de retornar códigos de erros e mensagens.
Seria interessante lançar exceções para o clientes do webservice?
Obrigado mais um vez.
Adilson
danieldestro
Eu fiz um cliente de WS, acessando o serviço de uma empresa.
Eles retornavam um VO que tinha sempre um getReturnCode() e um getList(), que retornava um array de VOs com os dados que eu queria.
Acho que talvez seja melhor do que lançar uma exceção.
Pense na interoperabilidade.
T
thingol
Isso é super-importante hoje em dia. Sempre tem aquele projeto que tem um client VB.NET ou C# (ou mesmo Python) tentando acessar um Web Service escrito em Java - isso vai ser super-comum.