Ok, I have used an HTTP monitor to check what's going on. The result is
that working with SOAP::RPC::Driver and add_method_with_soapaction a
type is automatically attached to every parameter. Infact, in the SOAP
message I see:
    <inx xsi:type="xsd:string">YWJj</inx>
while using WSDLDriverFactory:
    <x>YWJj</x>

That's it! Of course needs to be compatible with a byte[], that is to
say that if a type is specified it better be xsd:base64Binary. Infact,
if I rollback to pass an array like [65, 66] I can understand why I get
an IllegalArgumentExcepion ==> instead of xsd:base64Binary the SOAP
message contains
      <inx n2:arrayType="xsd:anyType[2]"
          xmlns:n2="http://schemas.xmlsoap.org/soap/encoding/"
          xsi:type="n2:Array">
        <item xsi:type="xsd:int">65</item>
        <item xsi:type="xsd:int">66</item>
      </inx>

Now the question is: why add_method_with_soapaction causes (sometimes
erronous) types to be passed with SOAP parameters?

Thx
AA