cara tu precisa de um jar com os ejbs no jboss, e um war com o resto no tomcat.
separa as duas apps.
sua estrutura de pacotes precisa seguir algumas regras:
Em seu jar:
crie um arquivo xxx-ds.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!-- pool de conexoes JDBC para JBoss / arquitetura II -->
<datasources>
<local-tx-datasource>
<jndi-name>jdbc/scjp</jndi-name>
<connection-url>jdbc:mysql://localhost/scjp</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>1</password>
<max-pool-size>4</max-pool-size>
</local-tx-datasource>
</datasources>
Dai dentro do META-INF vc poe um persistence.xml assim:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="scjpPU" transaction-type="JTA">
<jta-data-source>java:jdbc/scjp</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
Dai dentro do seu war vc vai precisar jogar la, um arquivo pra ele poder obter os nomes dos ejbs, este arquivo tem que se chamar:
xxx.jndi.properties
e dentro dele vc coloca assim:
#
# propriedades para conectar ao servico de nomes do JBoss / arquitetura II
# modifique java.naming.provider.url para conectar a um servidor remoto
#
java.naming.factory.initial=org.jboss.naming.NamingContextFactory
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
#
# propriedades para localizar entradas no servico de nomes
#
scjp.ejb3.user.transaction=UserTransaction
scjp.ejb3.gerenciador.quizs=GerenciadorQuizEjb3/remote
scjp.ejb3.gerenciador.scjps=GerenciadorScjpsEjb3/remote
scjp.ejb3.gerenciador.alunos=GerenciadorAlunosEjb3/remote
scjp.ejb3.gerenciador.turmas=GerenciadorTurmasEjb3/remote
scjp.ejb3.gerenciador.matriculas=GerenciadorMatriculasEjb3/remote
Além disso vc precisa registrar no seu Web.xml a sua fabrica dos EJBS:
<listener>
<listener-class>com.bbsw.jsf.util.StartupEjb3BF</listener-class>
</listener>
bixo, tu ainda vai ter que configurar sua ejb3BusinessFactory extends BusinessFactory:
(…)
public static Properties getJndiProperties() {
return jndiProperties;
}
public static void setJndiProperties(Properties initCtxtProperties) {
Ejb3BusinessFactory.jndiProperties = initCtxtProperties;
}
registrar seus ejbs e o contexto:
public static final String JNDI_PROPERTY_GERENCIADOR_TURMAS = "scjp.ejb3.gerenciador.turmas";
private static Properties jndiProperties;
private InitialContext initCtx;
private UserTransaction userTransaction;
Dai tu ainda vai precisar da BusinessFactory:
(...)
public static BusinessFactory getInstance() {
try {
Class _class = Class.forName(businessFactoryClassName);
return (BusinessFactory) _class.newInstance();
} catch (Exception e) {
throw new IllegalArgumentException("businessFactoryClassName invalido " + businessFactoryClassName, e);
}
}
public static String getBusinessFactoryClassName() {
return businessFactoryClassName;
}
public static void setBusinessFactoryClassName(String businessFactoryClassName) {
BusinessFactory.businessFactoryClassName = businessFactoryClassName;
}
Bixo, recomendo vc comprar a JavaMagazine Ed 47 e estudar ela inteira…dai tu aprende, eu pelo menos aprendi com ela!! 
Espero ter te ajudado!!
[]s