Does anyone know the best way around this?
Igor is correct, putting presentation java code in the WAR is correct. Putting business logic in the ear is correct to. Making them communicate is harder (this is where you want loose coupling...). Remember that the WAR can see classes in the EAR, but not the other way around.
So, there isn't really a way around this - except designing your app nicely.
The loose coupling with the event seems to work well. I will continue to use this approach until I find something better.
I did not know that the WAR classes could see the ear. Thanks for the tip.
Is it possible to deploy EJBs from the WAR?
Not currently. EJB 3.1 will address this (yay!) Then some of this packaging nightmare will go away.
Do you know the status of EJB 3.1?
Is this months or years away from having a production ready implementation?
I *believe* that we are talking around 12 months - but I'm really not sure.