获取其他参数以在自定义Magento SOAP API中工作

I'm trying to get a custom soap API plugin to work, but am stuck with getting the parameters carried over. The plugin is simple, it just adds some additional querying abilities for product list.

Structure

NS
\-- Connector
  \-- etc
    \-- api.xml
    \-- config.xml
    \-- system.xml
    \-- wsdl.xml
  \-- Helper
  \-- Model
    \-- Product
      \-- Api
        \-- V2.php
      \-- Product.php

api.xml

<?xml version="1.0"?>
<config>
    <api>
        <resources>
            <connector_product translate="title" module="ns_connector">
                <title>Product Resource</title>
                <model>ns_connector/product_api</model>
                <acl>ns_connector/product</acl>
                <methods>
                    <list translate="title" module="ns_connector">
                        <title>Retrive products</title>
                        <method>getItems</method>
                        <acl>ns_connector/product/list</acl>
                    </list>
                </methods>
            </connector_product>
        </resources>
        <resources_alias>
            <connector_product>connector_product</connector_product>
         </resources_alias>
        <v2>
            <resources_function_prefix>
                <connector_product>connectorProduct</connector_product>
            </resources_function_prefix>
        </v2>
        <acl>
            <resources>
                <ns_connector translate="title" module="ns_connector">
                    <title>NS Connector</title>
                    <sort_order>1</sort_order>
                    <product translate="title" module="ns_connector">
                        <title>Product</title>
                        <sort_order>2000</sort_order>                    
                        <list translate="title" module="ns_connector">
                            <title>list</title>
                        </list> 
                    </product>
                </ns_connector>
            </resources>
        </acl>
    </api>
</config>

wsdl.xml

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:typens="urn:{{var wsdl.name}}" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
             xmlns="http://schemas.xmlsoap.org/wsdl/"
             name="{{var wsdl.name}}" targetNamespace="urn:{{var wsdl.name}}">
    <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Magento">
            <import namespace="http://schemas.xmlsoap.org/soap/encoding/"
                    schemaLocation="http://schemas.xmlsoap.org/soap/encoding/"/>
            <complexType name="connectorProductEntityArray">
                <complexContent>
                    <restriction base="soapenc:Array">
                        <attribute ref="soapenc:arrayType" wsdl:arrayType="typens:connectorProductEntity[]"/>
                    </restriction>
                </complexContent>
            </complexType>
            <complexType name="connectorProductEntity">
                <all>
                    <element name="product_id" type="xsd:string"/>
                    <element name="sku"     type="xsd:string"/>
                    <element name="name"    type="xsd:string"/>
                    <element name="set"     type="xsd:string"/>
                    <element name="type"    type="xsd:string"/>
                    <element name="category_ids" type="typens:ArrayOfString"/>
                    <element name="website_ids" type="typens:ArrayOfString"/>
                </all>
            </complexType>
            <complexType name="nsConnectorArgs">
                <all>
                    <element name="filter"  type="typens:associativeArray" minOccurs="0" />
                    <element name="complex_filter" type="typens:complexFilterArray" minOccurs="0" />
                    <element name="simple"  type="typens:associativeArray" minOccurs="0" />
                </all>
            </complexType>
        </schema>
    </types>
    <message name="connectorProductListRequest">
        <part name="sessionId"  type="xsd:string"/>
        <part name="filters"    type="typens:filters"/>
        <part name="args"   type="typens:associativeArray" />
        <part name="store"  type="xsd:string"/>
    </message>
    <message name="connectorProductListResponse">
        <part name="storeView" type="typens:connectorProductEntityArray"/>
    </message>
    <portType name="{{var wsdl.handler}}PortType">
        <operation name="connectorProductList">
            <documentation>Retrieve products list by filters</documentation>
            <input message="typens:connectorProductListRequest"/>
            <output message="typens:connectorProductListResponse"/>
        </operation>
    </portType>
    <binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
        <operation name="connectorProductList">
            <soap:operation soapAction="urn:{{var wsdl.handler}}Action"/>
            <input>
                <soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
                           encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </input>
            <output>
                <soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
                           encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </output>
        </operation>
    </binding>
    <service name="{{var wsdl.name}}Service">
        <port name="{{var wsdl.handler}}Port" binding="typens:{{var wsdl.handler}}Binding">
            <soap:address location="{{var wsdl.url}}"/>
        </port>
    </service>
</definitions>

PHP Function Declation in NS_Connector_Model_Product_Api (NS/Connector/Model/Product/Api.php)

public function getItems($filters, $args, $store = null)

What's happening is that when I call the soap function connectorProductList(). For example:

$soap = new SoapClient('http://magentohost/api/v2_soap/?wsdl');
$session = $soap->login($uid, $upass);

var_dump($soap->connectProductList($session, array(), array('key' => 'value')));

It will not accept the argument "args" from the wsdl.xml defination. I've tried renaming that argument in the xml and php file, but it never works. Just ignores it or throws "array to string conversion" error. Any one have an idea why and how to fix?