覆盖默认FOSUserBundle表单:InvalidArgumentException

I'm using official documentation for symfony 2.1 for overriding default FOSUserBundle forms. But when I tried to override form handlers I've got this error:

InvalidArgumentException: The service definition "test_user.form.handler.registration" does not exist.

Files listing:

<?php

// src/Test/UserBundle/Form/Handler/RegistrationFormHandler.php

namespace Test\UserBundle\Form\Handler;

use FOS\UserBundle\Form\Handler\RegistrationFormHandler as BaseHandler;
use FOS\UserBundle\Model\UserInterface;

class RegistrationFormHandler extends BaseHandler
{
    protected function onSuccess(UserInterface $user, $confirmation)
    {
        // logic here...
        parent::onSuccess($user, $confirmation);
    }
}

=-=-=-=-=

# src/Test/UserBundle/Resources/config/services.yml
services:
    test_user.form.handler.registration:
        class: Test\UserBundle\Form\Handler\RegistrationFormHandler
        arguments: ["@fos_user.registration.form", "@request", "@fos_user.user_manager", "@fos_user.mailer", "@fos_user.util.token_generator"]
        scope: request
        public: false

=-=-=-=-=

# app/config/config.yml
fos_user:
    db_driver: orm
    firewall_name: dev
    user_class: Test\UserBundle\Entity\User
    registration:
        form:
            handler: test_user.form.handler.registration

P.S. Yes, I have read similar questions, but there is not the same problem that I have.

The problem was simple. I created my UnserBundle manually, so folder named DependencyInjection has not been created. This folder contains php files, which load services configuration.

Take a close look at the last line in services.yml. It says public: false, that is, this service is not accessible from the code (see Advanced Container Configuration). You can do one of two things: change the value of public to true or remove the line since the default value is true.