Servlet como Middleware entre WS e Mobile App

Pessoal,

Estou desenvolvendo uma aplicacao Mobile que irá acessar minha base de dados via WebService (já implementado e utilizado por outras aplicações). Como ainda não existe um framework maduro para trabalhar com WS em aplicações mobile (tem o Ksoap2, mas seria muito trabalhoso), decidimos criar então um Servlet que servirá como ponte entre o WebService e a aplicação Mobile (Iphone) por motivos de processamento e trafego de rede. (A aplicação mobile chamará o servlet, que se encarregará de chamar os metodos do WS e irá converter os objetos retornados do WS em um formato mais adequado para uma aplicação mobile (Json, por exemplo).

WebService.java

@Stateless
@WebService(name="EmpresaWS", serviceName="EmpWS")
public class EmpresaWS implements IEmpresaWS {

	@Resource private WebServiceContext ctx;
	HttpSession sessao;
                ...

@WebMethod
public Session autenticarUsuario(String user, String senha) {
  //valida login
  return criarSessao();
}

private Session criarSessao(){
      MessageContext msgCtx = ctx.getMessageContext();
      HttpServletRequest request = (HttpServletRequest)msgCtx.get(MessageContext.SERVLET_REQUEST);
      return request.getSession();

Gostaria de chamar o WebService via Servlet sem precisar gerar um cliente do mesmo (classes stub, endpoints, etc) pois a aplicação Middle (servlet) estará no mesmo servidor de aplicação que o WebService. Eu queria chamar o componente diretamente mas não esta funcionando. Eu consigo injetar o EJB do WS no servlet, mas a propriedade WebServiceContext, anotada com @Resource, nao é injetada no WS corretamente, sempre gerando uma exception ao ser invocada no metodo criarSessao do WS e não consegui encontrar outra maneira de acessar/instanciar o WebServiceContext sem ser via anotação @Resource.

A exception é: java.lang.IllegalStateException: WebServiceContext not available.

MiddelServlet.java

public class MiddleServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	@EJB(mappedName="XXX-Ear/EmpresaWS/remote") private IEmpresaWS service;

        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	PrintWriter out = response.getWriter();
	String acao = request.getParameter("acao"); 
	String usuario = request.getParameter("user"); 
	String senha = request.getParameter("pwd");  

                Session sessao = service.autenticarUsuario(usuario, senha); //chama o WS diretamente
                ...
          }
}

Alguém sabe me dizer se é possível fazer isso da maneira como estou fazendo, ou eu tenho mesmo que gerar um cliente do WebService?

Também gostaria de saber a opinião de vocês, sobre qual a melhor forma de fazer essa integração (Aplicação Mobile e WebService Soap).