Ваш конкретный класс ConcreteDAO, который расширяет AbstractDAO, должен быть ejb, как сказал Микко Мауну, и должен сам управлять транзакцией (бинами, которые сами управляют транзакцией BMT), другими словами:
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class ConcreteDAO extends AbstractDAO {
...
}
И этобудет лучше, если вы добавите EntityManager в свой AbstractDAO и сконфигурируете источник данных JBOSS для управления транзакциями (local-tx-datasource или xa-datasource).вы можете посмотреть конфигурацию JBOSS DS по адресу: https://community.jboss.org/wiki/ConfigDataSources
, если вы хотите самостоятельно управлять транзакцией через EntityManager, с entityManagerFactory
EntityManager entityManager = emf.createEntityManager();
entityManager.getTransaction().begin();
вы не можете использовать UserTransaction, и JBoss DS долженbe no-tx-datasource