how para pasar el objeto JSON como un PathVariable al controlador de primavera

Estoy trabajando en la aplicación de primavera con angularjs. Quiero pasar el objeto JSON como@PathVariable al controlador de resorte, pero con mi código siguiente, al pasar el objeto JSON como PathVariable, no está golpeando el controlador de resorte y tampoco muestra ningún error. ¿Alguna entrada?

código de muestra: js:

myApp.controller('passJSONTestController', function ($rootScope, $scope, MyService) {
     $scope.submitdata=function(){
        $scope.myJSONData = [
            {   'name':$scope.name,
                'sinNumber': $scope.sinNo,
                'status': $scope.status,
                'message':$scope.message,
            }
        ];
        var fd=new FormData();
        angular.forEach($scope.files,function(file){
            console.log("file " + file);
            fd.append('file',file);
        });
        MyService.sendJSON($scope.myJSONData,fd).then(
            function (response) {
                //
            },
            function (errResponse) {
             }
        );
    }
});

MyService.js

myService.sendJSON = function (myJSONData,fd) {
         var deferred = $q.defer();
        var myUrl = applnURL + '/dataStack/' + myJSONData + '/getAllDataInfo.form';
          var config = {
            transformRequest: angular.identity,
             headers : {
                'Content-Type': undefined
            }
        }
         $http.post(repUrl, fd, config ).then(function (response) {
        }, function (response) {
         });
         return deferred.promise;
     }

controlador de primavera:

@Controller
@RequestMapping("/dataStack")
public class GetData {
 @RequestMapping(value = "/{myJSONData}/getAllDataInfo", method = RequestMethod.POST)
    public
    @ResponseBody
    String sendInfo(@RequestParam("file") List<MultipartFile> multiPartFileList,@PathVariable("myJSONData") List<MyDTO> myDTO){                          
        System.out.println("In Spring controller");
   }

¿Por qué se pasa la solicitud sin golpear el controlador de resorte? PD: si elimino la variable de ruta en el controlador de resorte y la elimino de mySerivce.js, entonces está golpeando el controlador de resorte.

------------- EDITADO (Código actualizado) -------------- He agregado la siguiente clase:

@Configuration
public class MultiFileResolverConfig {
    @Bean(name = "multipartResolver")
    public MultipartResolver multipartResolver() {
        System.out.println("--In configuration file multipartResolver--");
        return new CommonsMultipartResolver();
    }
}

spring-servlet.xml He agregado a continuación<bean> en el archivo de configuración sprig-servlet.xml

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="10000000"/>
</bean>

código HTML

<html>
..elements for name,sinNumber,status,message
  <input type = "file"  name="file" file-model="file" multiple/>
..//submit button
</html>

ódigo @js:

 myApp.directive('fileModel', ['$parse', function ($parse) {
    return {
        restrict: 'A',
        link: function(scope, element, attrs) {
            var model = $parse(attrs.fileModel);
            var modelSetter = model.assign;

            element.bind('change', function(){
                scope.$apply(function(){
                    modelSetter(scope, element[0].files[0]);
                });
            });
        }
    };
}]);

    myApp.controller('passJSONTestController', function ($rootScope, $scope, MyService) {
         $scope.submitdata=function(){
            $scope.myJSONData = [
                {   'name':$scope.name,
                    'sinNumber': $scope.sinNo,
                    'status': $scope.status,
                    'message':$scope.message,
                }
            ];
            var fd=new FormData();
            angular.forEach($scope.files,function(file){
                console.log("file " + file);
                fd.append('file',file);
            });
            fd.append("json",$scope.myJSONData);
            MyService.sendJSON(fd).then(
                function (response) {
                    //
                },
                function (errResponse) {
                 }
            );
        }
    });

service.js

myService.sendJSON = function (fd) {
         var deferred = $q.defer();
        var myUrl = applnURL + '/dataStack/getAllDataInfo.form';
          var config = {
            transformRequest: angular.identity,
             headers : {
                'Content-Type': undefined
            }
        }
         $http.post(myUrl, fd, config ).then(function (response) {
        }, function (response) {
         });
         return deferred.promise;
     }

controlador de primavera:

@Controller
@RequestMapping("/dataStack")
public class GetDataController{
    @RequestMapping(value = "/getAllDataInfo", method = RequestMethod.POST)
    public @ResponseBody
    String uploadMultipleFileHandler(MultipartHttpServletRequest req) {

        System.out.println("in spring upload multiple files");
        List<MultipartFile> multiPartFileList = req.getFiles("file");
        System.out.println("in multiPartFileList " + multiPartFileList.size());//size is always zero
        String[] json = (String[]) req.getParameterMap().get("json");//getting the values submitted
        //code here..

Obtengo los valores para el objeto json pero no puedo obtener los detalles de los archivos. El tamaño de multiPartFileList.size () es cero. Intenté agregar solo la clase MultiFileResolverConfig y eliminar el<bean> declaración en spring-servlet.xml pero aún así los detalles del archivo no se han pasado al controlador de primavera.

Respuestas a la pregunta(3)

Su respuesta a la pregunta