WebServices + EJB ou DAO?

3 respostas
T

Olá, pessoal.

Por curiosidade, gostaria de saber a opinião de vocês sobre a utilização de EJB e DAO em WebServices.

O que acham mais adequado: Nos WebServices que serão consumidos por clientes, usar EJBSs que acessam DAOs, ou usar direto DAOs?

Tks!

3 Respostas

renanreismartins

estranho…

sinceramente se vc usa ejbs nao vejo a necessidade de acessar um dao, claro mantendo as coisas mais simples possiveis, mas cada caso é um caso.

um modo facil é anotar seus metodos ejb para que se tornem webservices e se for o caso realizar todas as buscas no banco com o EntityManager.

abrassss

G

Há que seja a favor de usar DAO/repositórios e há quem seja a favor de acessar o entity-manager direto. Eu particularmente prefiro usar repositório de dados independente de usar EJB ou não, pois assim facilita meus testes unitários e mantenho uma separação um pouco maior das responsabilidades.

Tem uma boa discução aqui, iniciada pelo Paulo Silveira: http://guj.com.br/posts/list/133946.java

T

Usei EJB no WebService:

@WebService
@Stateless
public class ModuloSinistroService {

	@EJB
	private ModuloRoEvent moduloRoEvent;

	@WebMethod(operationName = "buscarSinistrosPorContrato")
	public String buscarSinistrosPorContrato(@WebParam(name = "idContrato") final Integer idContrato, @WebParam(name = "casoEspecial") final boolean isCasoEspecial) throws Exception {
		List<RoEvent> listaSinistros = new ArrayList<RoEvent>();
		if (isCasoEspecial) {
			listaSinistros = moduloRoEvent.buscarRosEventEspeciaisPorContrato(idContrato);
		} else {
			listaSinistros = moduloRoEvent.buscarRosEventPorContrato(idContrato);
		}
		return XMLUtil.converteParaXml(listaSinistros, RoEvent.class);
	}
}

Decidi usar EJB, pois meu WebService será consumido por um cliente, porém os métodos do EJB serão utilizados também internamente no projeto. O que acham?

Tks!!

Criado 4 de fevereiro de 2010
Ultima resposta 5 de fev. de 2010
Respostas 3
Participantes 3