Consumir / Servir SOAP com vRaptor é possivel?

Olá pessoal, andei vendo que o vraptor tem otima integraçao com WS Rest, mais a empresa que estou trabalhando necessita que a aplicação possa Servir e Consumir SOAP, e estou trabalhando com vRaptor, não encontrei documentos que informem como efetuar isso para SOAP, é possivel haver essa integração? se sim, existe algum documento do qual eu possa me basear para começar a desenvolver?

atualmente, eu possuo esse webservice:

 package br.com.goodbuy.webservices;

import javax.jws.WebMethod;
import javax.jws.WebService;

import br.com.goodbuy.model.Usuario;

@WebService(endpointInterface = "br.com.goodbuy.webservices.HelloWorld")
public class HelloWorldImpl implements HelloWorld{

	@Override
	public String getHelloWorldAsString() {
		return "Hello World JAX-WS";
	}

	//@Override
	//@WebMethod
	//public Usuario getUsuario(int codigo) {
	//	chamasse meu UsuarioDAO e retornasse o objeto passando o id.
	//}
}

e ja esta funcionando, tudo direitim, minha aplicação já está disponibilizando esse webservice, só que agora eu queria que esse metodo getUsuario pudesse acessar meu UsuarioDAO para chamar o metodo .load(int id)

veja como está meu UsuarioDAO()

[code]package br.com.goodbuy.dao;

import java.util.HashMap;
import java.util.Map;

import org.hibernate.Session;

import br.com.caelum.vraptor.ioc.Component;
import br.com.goodbuy.model.Usuario;
import br.com.goodbuy.repositorio.UsuarioRepositorio;

@Component
public class UsuarioDAO extends GenericDAO implements UsuarioRepositorio {

public UsuarioDAO(Session sessao) {
	super(Usuario.class, sessao);
}

@Override
public Usuario findUserByEmail(String email) {
	String hql = "select u from Usuario u where u.email = :email";
	Map<String, Object> parameters = new HashMap<String, Object>();
	parameters.put("email", email);
	return super.findOneResult(hql, parameters);
}

}
[/code]

só que quem passa essa session é o vraptor, só que o webservice, quando chamar a classe nao possue a Session, e nem o vraptor vai passar pq nao é ele quem cria o webservice, queria saber como poderia fazer isso? obs, não posso utilizar o restful pq vou trabalhar com soap. e que possivelmente vou precisar persistir dados no banco da aplicaçao do vraptor que vao vir do webservice, pois tanto vou servir quanto vou consumir e quando consumir PODE SER que eu precise persistir alguns dados, se caso eu precise como efetuarei isso? pq preciso garantir o rollback e commit dos dados.

como eu já te respondi na lista de emails, com o VRaptor só aproveitando a integração do Spring…

mas vc pode atingir isso facilmente usando Java EE 6 (com EJBs ou CDI pra criar os componentes).

recebendo o EntityManager como @PersistenceContext, o proprio servidor cuida de tudo.

bem, antes de mais nada, nao sabia que o pessoal do email tambem era o que ajudava aqui, vou parar lá no email e continuar aqui é melhor pra evitar respostas repetidas.

então, por favor, esqueça lá e desculpa.

então Lucas, receber o Hibernate Session como @PersistenceContext, o proprio servidor cuida de tudo? mais eu to utilizando um plugin que você me indicou o vraptor hibernate, que ele já cuida do commit e do rollback, ou seja garante uma transação pra mim, se eu utilizar esse context, vou ter garantia dessa transação (commit, rollback…) ?

obs: estou usando tomcat 7, mais uma vez, peço desculpas por essas perguntas é pq estou ainda engatinhando no vraptor e preciso saber se continuo ou não com essa tecnologia e o principal para continuar é essa questão do webservice que precisa ser soap e que possa ser que precise servir e consumir dados e serviços que estão na minha logica ou servir dados que estão no meu bd e preciso garantir que os dados sejam transacionados (garantir o rollback e tudo mais).

isso não funciona com tomcat, vc tem que usar o JBoss, ou o GlassFish ou o WebLogic… qualquer servidor de aplicação.

E não seria a Hibernate Session, e sim o EntityManager.