private NameValuePair[] buildHttpInvokationParameters(Object[] invokationData) throws ServiceDefinitionException, ServiceInvocationException{
         NameValuePair[] httpParams = null;
        
        try {
            int invokationDataLength = (invokationData == null) ? 0 : invokationData.length;
            SerializerHelper serializer = new SerializerHelper();
            
            validateServiceParameters(invokationData);
        
            ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
            ServiceConfigManager configManager = ServiceConfigManager.newInstance(getServiceCode());
        
            HashMap<String,Object> configParams = (HashMap<String,Object>) configManager.getConfigParameter("params");
            int dataIndex = -1;
            
            for (String paramName : configParams.keySet()){
                String paramValue = null;
                
                if (++dataIndex < invokationDataLength){
                    paramValue = serializer.serialize(invokationData[dataIndex]);
                }                                
                
                params.add(new BasicNameValuePair(paramName, paramValue == null ? null : paramValue));                
            }  
                        
            httpParams = params.toArray(new NameValuePair[0]);
        }
        catch (ServiceDefinitionException sde){
            throw sde;
        }
        catch (ServiceInvocationException sie){
            throw sie;
        }
        catch (Exception e){
            throw new ServiceInvocationException(this.getServiceCode(), e);
        }
        
        return httpParams;
    }