I take the same exact same web application and deploy it as an WAR with no problems. However, same application deployed as EAR fails. Same files, just different deployment. F
When using an EAR deployment, EJB's should be in the /lib
directory of the EAR or you need to add <ear-subdeployments-isolated>false</ear-subdeployments-isolated>
to get the EE subsystem to recognize the EJB JAR.
Another option would be to add Dependencies: Webapp-ejb-1.0-SNAPSHOT
to the MANIFEST.MF in your WAR.
You can get more information on class loading with EAR's from the following documentation https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7.
First of all Your EJB beans should never depend on JSF libraries. JSF is framework designed for view part of the application (html+backing beans). EJB module should operate without the knowledge about JSF.
If You really need to reference JSF from EJB method you have to explicitly inform container (JBoss 7.1.) that this module depends on JSF module. You can find details here: https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7