{"id":1518,"date":"2022-08-30T15:17:12","date_gmt":"2022-08-30T15:17:12","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2013\/11\/26\/symfony2-production-environment-mapping-exception-due-to-custom-user-class-not-found-in-chain-configuration-collection-of-common-programming-errors\/"},"modified":"2022-08-30T15:17:12","modified_gmt":"2022-08-30T15:17:12","slug":"symfony2-production-environment-mapping-exception-due-to-custom-user-class-not-found-in-chain-configuration-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2022\/08\/30\/symfony2-production-environment-mapping-exception-due-to-custom-user-class-not-found-in-chain-configuration-collection-of-common-programming-errors\/","title":{"rendered":"Symfony2 production environment: Mapping exception due to custom User class not found in chain configuration-Collection of common programming errors"},"content":{"rendered":"<p>I&#8217;m developing a bit complex Symfony2.1 based app, with connection to two different databases (with two entity managers, one connected to Oracle and the other one to PostgreSQL) and a custom User class (with a custom password encoder).<\/p>\n<p>I&#8217;ve managed to have it running correctly in dev environment, but whenever I try to run it in production environment I&#8217;m getting the next error:<\/p>\n<p><strong>Doctrine\\Common\\Persistence\\Mapping\\MappingException: The class &#8216;MyFirm\\UserManagerBundle\\Entity\\User&#8217; was not found in the chain configured namespaces (uncaught exception)<\/strong><\/p>\n<p>My security and encoders in app\/config\/security.yml:<\/p>\n<pre><code>security:\n  encoders:\n    MyFirm\\UserManagerBundle\\Entity\\User:\n        id: myfirm_usermanager.password_encoder\n\n  providers:\n    user_db:\n        entity: \n            class: MyFirm\\UserManagerBundle\\Entity\\User\n            property: username \n<\/code><\/pre>\n<p>The doctrine.orm section in app\/config\/config.yml:<\/p>\n<pre><code>doctrine:\n  orm:\n    auto_generate_proxy_classes: %kernel.debug%\n    default_entity_manager: user_config_db \n    entity_managers:\n        event_db:\n            connection:   event_db\n            mappings:\n                MyFirmEventManagerBundle: ~\n        user_config_db:\n            connection:   user_config_db\n            mappings:\n                MyFirmUserManagerBundle:  ~\n<\/code><\/pre>\n<p>And finally, this is the final Exception log:<\/p>\n<pre><code>Exception trace:\n () at C:\\SF2_project\\vendor\\doctrine\\common\\lib\\Doctrine\\Common\\Persistence\\Mapping\\MappingException.php:38\n Doctrine\\Common\\Persistence\\Mapping\\MappingException::classNotFoundInNamespaces() at C:\\SF2_project\\vendor\\doctrine\\common\\lib\\Doctrine\\Common\\Persistence\\Mapping\\Driver\\MappingDriverChain.php:114\n Doctrine\\Common\\Persistence\\Mapping\\Driver\\MappingDriverChain-&gt;loadMetadataForClass() at C:\\SF2_project\\vendor\\doctrine\\orm\\lib\\Doctrine\\ORM\\Mapping\\ClassMetadataFactory.php:112\n Doctrine\\ORM\\Mapping\\ClassMetadataFactory-&gt;doLoadMetadata() at C:\\SF2_project\\vendor\\doctrine\\common\\lib\\Doctrine\\Common\\Persistence\\Mapping\\AbstractClassMetadataFactory.php:302\n Doctrine\\Common\\Persistence\\Mapping\\AbstractClassMetadataFactory-&gt;loadMetadata() at C:\\SF2_project\\vendor\\doctrine\\common\\lib\\Doctrine\\Common\\Persistence\\Mapping\\AbstractClassMetadataFactory.php:205\n Doctrine\\Common\\Persistence\\Mapping\\AbstractClassMetadataFactory-&gt;getMetadataFor() at C:\\SF2_project\\vendor\\doctrine\\orm\\lib\\Doctrine\\ORM\\EntityManager.php:268\n Doctrine\\ORM\\EntityManager-&gt;getClassMetadata() at C:\\SF2_project\\app\\cache\\prod\\jms_diextra\\doctrine\\EntityManager_5075a0dd6e27a.php:345\n EntityManager5075a0dd6e27a_546a8d27f194334ee012bfe64f629947b07e4919\\__CG__\\Doctrine\\ORM\\EntityManager-&gt;getClassMetadata() at C:\\SF2_project\\vendor\\symfony\\symfony\\src\\Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider.php:39\n Symfony\\Bridge\\Doctrine\\Security\\User\\EntityUserProvider-&gt;__construct() at C:\\SF2_project\\app\\cache\\prod\\appProdProjectContainer.php:1132\n appProdProjectContainer-&gt;getSecurity_User_Provider_Concrete_UserDbService() at C:\\SF2_project\\app\\bootstrap.php.cache:211\n Symfony\\Component\\DependencyInjection\\Container-&gt;get() at C:\\SF2_project\\app\\cache\\prod\\appProdProjectContainer.php:1121\n appProdProjectContainer-&gt;getSecurity_User_Provider_Concrete_ChainProviderService() at C:\\SF2_project\\app\\bootstrap.php.cache:211\n Symfony\\Component\\DependencyInjection\\Container-&gt;get() at C:\\SF2_project\\app\\cache\\prod\\appProdProjectContainer.php:1105\n appProdProjectContainer-&gt;getSecurity_Authentication_ManagerService() at C:\\SF2_project\\app\\bootstrap.php.cache:211\n Symfony\\Component\\DependencyInjection\\Container-&gt;get() at C:\\SF2_project\\app\\cache\\prod\\appProdProjectContainer.php:552\n appProdProjectContainer-&gt;getSecurity_ContextService() at C:\\SF2_project\\app\\bootstrap.php.cache:211\n Symfony\\Component\\DependencyInjection\\Container-&gt;get() at C:\\SF2_project\\app\\cache\\prod\\appProdProjectContainer.php:1002\n appProdProjectContainer-&gt;getTwigService() at C:\\SF2_project\\app\\bootstrap.php.cache:211\n Symfony\\Component\\DependencyInjection\\Container-&gt;get() at C:\\SF2_project\\app\\cache\\prod\\appProdProjectContainer.php:30\n appProdProjectContainer-&gt;getAssetic_AssetManagerService() at C:\\SF2_project\\app\\bootstrap.php.cache:211\n Symfony\\Component\\DependencyInjection\\Container-&gt;get() at C:\\SF2_project\\vendor\\symfony\\assetic-bundle\\Symfony\\Bundle\\AsseticBundle\\CacheWarmer\\AssetManagerCacheWarmer.php:33\n Symfony\\Bundle\\AsseticBundle\\CacheWarmer\\AssetManagerCacheWarmer-&gt;warmUp() at C:\\SF2_project\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerAggregate.php:47\n Symfony\\Component\\HttpKernel\\CacheWarmer\\CacheWarmerAggregate-&gt;warmUp() at C:\\SF2_project\\vendor\\symfony\\symfony\\src\\Symfony\\Bundle\\FrameworkBundle\\Command\\CacheWarmupCommand.php:64\n Symfony\\Bundle\\FrameworkBundle\\Command\\CacheWarmupCommand-&gt;execute() at C:\\SF2_project\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Console\\Command\\Command.php:238\n Symfony\\Component\\Console\\Command\\Command-&gt;run() at C:\\SF2_project\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Console\\Application.php:193\n Symfony\\Component\\Console\\Application-&gt;doRun() at C:\\SF2_project\\vendor\\symfony\\symfony\\src\\Symfony\\Bundle\\FrameworkBundle\\Console\\Application.php:78\n Symfony\\Bundle\\FrameworkBundle\\Console\\Application-&gt;doRun() at C:\\SF2_project\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Console\\Application.php:106\n Symfony\\Component\\Console\\Application-&gt;run() at C:\\SF2_project\\app\\console:22\n<\/code><\/pre>\n<p>Has somebody any clue? Thanks a lot.<\/p>\n<ol>\n<li>\n<p>The problem seems it is a bug in Symfony2: the default entity manager must be named &#8220;default&#8221; if you want it to work in Production environment as the default entity manager.<\/p>\n<p>After changing the doctrine.orm section in app\/config\/config.yml to:<\/p>\n<pre><code>doctrine:\n  orm:\n    auto_generate_proxy_classes: %kernel.debug%\n    default_entity_manager: default\n    entity_managers:\n      event_db:\n        connection:   event_db\n        mappings:\n            MyFirmEventManagerBundle: ~\n      default:\n        connection:   user_config_db\n        mappings:\n            MyFirmUserManagerBundle:  ~\n<\/code><\/pre>\n<p>everything works.<\/p>\n<\/li>\n<\/ol>\n<p id=\"rop\"><small>Originally posted 2013-11-26 18:03:15. <\/small><\/p>","protected":false},"excerpt":{"rendered":"<p>I&#8217;m developing a bit complex Symfony2.1 based app, with connection to two different databases (with two entity managers, one connected to Oracle and the other one to PostgreSQL) and a custom User class (with a custom password encoder). I&#8217;ve managed to have it running correctly in dev environment, but whenever I try to run it [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1518","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/1518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=1518"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/1518\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=1518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=1518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=1518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}