¿Pueden EJB2 y EJB3 coexistir en una sola aplicación?

Alguien sabe si es posible reemplazar iterativamente beans EJB2.1 con beans EJB3 en la aplicación Java EE?

Es decir: en un momento elimine un bean 2.1 del código y agregue el bean EJB3 correspondiente que implementa el mismo comportamiento sin tocar el resto del código (+ poder inyectar los EJB heredados a través de anotaciones en el nuevo EJB3).

No soy experto en especificaciones de EJB (y tengo experiencia solo con EJB3), pero para mí EJB es simplemente un componente con una interfaz comercial dada que es administrado por el servidor de aplicaciones. AFAIK EJB3 trajo una gran simplificación sobre cómo escribir el componente (sin interfaces artificiales) y la mayoría de las veces se puede omitir el descriptor xml gracias a las anotaciones, pero los conceptos básicos son los mismos. Por lo tanto, parece plausible, podría funcionar.

¿Hay alguna incompatibilidad entre EJB2.1 y EJB3?

El núcleo de la pregunta es si la migración EJB2.1 -> EJB3 debe ser una operación de detención del mundo / reescritura completa o si uno puede hacerlo mientras agrega nuevas características y corrige errores a la aplicación heredada (por lo que habrá combinación de EJB2.1 y EJB3 durante algún tiempo en la aplicación en ejecución).

EDITAR

Solo estoy interesado en beans de sesión. Tengo curiosidad por saber (y cómo) funcionará la búsqueda. AFAIK EJB2.1 requiere algo llamado interfaz de inicio para obtener una referencia a un EJB diferente, pero EJB3 no tiene interfaz de inicio ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta