View Ticket
Not logged in
Ticket UUID: ab9ad7b044f5ac7e2b82e8c7e92ab9d53eba573a
Title: Trying [9c7e118edb] results in http error
Status: Closed Type: Code_Defect
Severity: Severe Priority: Immediate
Subsystem: Client_Side Resolution: Fixed
Assigned to: unassigned
Last Modified: 2015-06-16 16:45:19
Version Found In: trunk
Description & Comments:
Gerald,

I have just tried your recent trunk and got a new error in client access. I suppose this is due to the http header "" patch.

The server is also TCLWS.

Here is the error message:

Error calling web service: list element in quotes followed by "pwsserverincmd:test"" instead of space (::pwsclientcalc::pwsclientcalcDataIn 1 {ListField {1 2 3}})
> list element in quotes followed by "pwsserverincmd:test"" instead of space
>     while executing
> "::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers [string map {\{ \" \} \"} $headers]"
>     (procedure "::WS::Client::DoCall" line 31)
>     invoked from within
> "::WS::Client::DoCall $Class $Config(_Operation_$Class) $dArgData [HeaderGet $Class]"
> --Traceback--
> INNER:invokeStk1 ::http::geturl http://168.200.0.164:8026/service/pwsserverincmd/op -query {<?xml version="1.0"  encoding="utf-8"?>
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:tns1="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:w="http://schemas.xmlsoap.org/wsdl/" xmlns:tns2="http://schemas.xmlsoap.org/wsdl/http/" xmlns:tns3="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:d="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns4="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><tns1:testRequest><tns1:Base64Array>MQ==</tns1:Base64Array><tns1:Base64Array>Mg==</tns1:Base64Array><tns1:Base64Array>Mw==</tns1:Base64Array></tns1:testRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>} -type {text/xml;charset=utf-8} -headers {SOAPAction ""pwsserverincmd:test""}
> CALL:::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {}
> CALL:pwsclientcalcDataIn 1 {ListField {1 2 3}}
>

Here is the tcl call:

::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {}

and here is the log of the call (prepended with time stamps):

L():2015-05-26 09:47:47 5 Entering ::WS::Client::DoCall {1 test Base64Array {MQ== Mg== Mw==}} (::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {})
L():2015-05-26 09:47:47 5 One Option {valueAttrCompatiblityMode} (::WS::Utils::SetOption valueAttrCompatiblityMode)
L():2015-05-26 09:47:47 5 Multiple option pairs (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 09:47:47 5 Setting Option {valueAttrCompatiblityMode} to {1} (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 09:47:47 5 One Option {suppressNS} (::WS::Utils::SetOption suppressNS)
L():2015-05-26 09:47:47 5 Multiple option pairs (::WS::Utils::SetOption suppressNS {})
L():2015-05-26 09:47:47 5 Setting Option {suppressNS} to {} (::WS::Utils::SetOption suppressNS {})
L():2015-05-26 09:47:47 5 Entering buildDocLiteralCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}} (::WS::Client::buildDocLiteralCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 09:47:47 5 Type = {tns1:testRequest} typeInfoList = {1 0} (::WS::Utils::GetServiceTypeDef Client 1 tns1:testRequest)
L():2015-05-26 09:47:47 5 @6 (::WS::Utils::GetServiceTypeDef Client 1 tns1:testRequest)
L():2015-05-26 09:47:47 5 domNode02BD7E30 appendChild [domDoc02BD45B0 createElement tns1:testRequest reply] (::WS::Client::buildDocLiteralCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 09:47:47 5 Entering ::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5 	 typeInfoList = {1 0} (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5 	itemList is {Base64Array {type xs:base64Binary() comment {}}} in tns1 (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5 		itemName = {Base64Array} itemDef = {type xs:base64Binary() comment {}} itemType ={xs:base64Binary()} (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5 Expr !1 && !1 (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5 Type = {base64Binary} typeInfoList = {0 0} (::WS::Utils::GetServiceTypeDef Client 1 xs:base64Binary)
L():2015-05-26 09:47:47 5 @3 (::WS::Utils::GetServiceTypeDef Client 1 xs:base64Binary)
L():2015-05-26 09:47:47 5 		itemName = {Base64Array} itemDef = {type xs:base64Binary() comment {}} typeInfoList = {0 1} itemXns = {tns1} tmpInfo = {type xs:base64Binary xns xs} attrList = {} (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 4 		itemName = {Base64Array} itemDef = {type xs:base64Binary() comment {}} typeInfoList = {0 1} isAbstract = {false} (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5 Leaving ::WS::Utils::convertDictToType with xml: <tns1:testRequest> (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5     <tns1:Base64Array>MQ==</tns1:Base64Array> (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5     <tns1:Base64Array>Mg==</tns1:Base64Array> (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5     <tns1:Base64Array>Mw==</tns1:Base64Array> (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5 </tns1:testRequest> (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5  (::WS::Utils::convertDictToType Client 1 domDoc02BD45B0 domNode02BD7E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 09:47:47 5 Leaving ::WS::Client::buildDocLiteralCallquery with {<?xml version="1.0"  encoding="utf-8"?> (::WS::Client::buildDocLiteralCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 09:47:47 5 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:tns1="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:w="http://schemas.xmlsoap.org/wsdl/" xmlns:tns2="http://schemas.xmlsoap.org/wsdl/http/" xmlns:tns3="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:d="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns4="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><tns1:testRequest><tns1:Base64Array>MQ==</tns1:Base64Array><tns1:Base64Array>Mg==</tns1:Base64Array><tns1:Base64Array>Mw==</tns1:Base64Array></tns1:testRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>} (::WS::Client::buildDocLiteralCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 09:47:47 5 Multiple option pairs (::WS::Utils::SetOption suppressNS {})
L():2015-05-26 09:47:47 5 Setting Option {suppressNS} to {} (::WS::Utils::SetOption suppressNS {})
L():2015-05-26 09:47:47 5 Leaving ::WS::Client::buildCallquery with {<?xml version="1.0"  encoding="utf-8"?> (::WS::Client::buildCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 09:47:47 5 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:tns1="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:w="http://schemas.xmlsoap.org/wsdl/" xmlns:tns2="http://schemas.xmlsoap.org/wsdl/http/" xmlns:tns3="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:d="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns4="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><tns1:testRequest><tns1:Base64Array>MQ==</tns1:Base64Array><tns1:Base64Array>Mg==</tns1:Base64Array><tns1:Base64Array>Mw==</tns1:Base64Array></tns1:testRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>} (::WS::Client::buildCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 09:47:47 5 Multiple option pairs (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 09:47:47 5 Setting Option {valueAttrCompatiblityMode} to {1} (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 09:47:47 4 ::http::geturl http://168.200.0.164:8026/service/pwsserverincmd/op -query {<?xml version="1.0"  encoding="utf-8"?> (::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {})
L():2015-05-26 09:47:47 4 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:tns1="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:w="http://schemas.xmlsoap.org/wsdl/" xmlns:tns2="http://schemas.xmlsoap.org/wsdl/http/" xmlns:tns3="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:d="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns4="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><tns1:testRequest><tns1:Base64Array>MQ==</tns1:Base64Array><tns1:Base64Array>Mg==</tns1:Base64Array><tns1:Base64Array>Mw==</tns1:Base64Array></tns1:testRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>} -type {text/xml;charset=utf-8} -headers {SOAPAction ""pwsserverincmd:test""} (::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {})
L():2015-05-26 09:47:47 2 Error calling web service: list element in quotes followed by "pwsserverincmd:test"" instead of space (::pwsclientcalc::pwsclientcalcDataIn 1 {ListField {1 2 3}})
> list element in quotes followed by "pwsserverincmd:test"" instead of space
>     while executing
> "::http::geturl $url -query $query -type [dict get $serviceInfo contentType] -headers [string map {\{ \" \} \"} $headers]"
>     (procedure "::WS::Client::DoCall" line 31)
>     invoked from within
> "::WS::Client::DoCall $Class $Config(_Operation_$Class) $dArgData [HeaderGet $Class]"
> --Traceback--
> INNER:invokeStk1 ::http::geturl http://168.200.0.164:8026/service/pwsserverincmd/op -query {<?xml version="1.0"  encoding="utf-8"?>
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:tns1="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:w="http://schemas.xmlsoap.org/wsdl/" xmlns:tns2="http://schemas.xmlsoap.org/wsdl/http/" xmlns:tns3="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:d="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns4="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><tns1:testRequest><tns1:Base64Array>MQ==</tns1:Base64Array><tns1:Base64Array>Mg==</tns1:Base64Array><tns1:Base64Array>Mw==</tns1:Base64Array></tns1:testRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>} -type {text/xml;charset=utf-8} -headers {SOAPAction ""pwsserverincmd:test""}
> CALL:::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {}
> CALL:pwsclientcalcDataIn 1 {ListField {1 2 3}}
> 

Here is the wsdl of the server:

<?xml version="1.0"  encoding="utf-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:pwsserverincmd="http://168.200.0.164:8026/service/pwsserverincmd" targetNamespace="http://168.200.0.164:8026/service/pwsserverincmd">
    <wsdl:types>
        <xs:schema elementFormDefault="qualified" targetNamespace="http://168.200.0.164:8026/service/pwsserverincmd">
            <xs:element name="testRequest" type="pwsserverincmd:testRequest"/>
            <xs:complexType name="testRequest">
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="1" name="Base64Array" type="xs:base64Binary"/>
                </xs:sequence>
            </xs:complexType>
            <xs:element name="testResults" type="pwsserverincmd:testResults"/>
            <xs:complexType name="testResults">
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="1" name="testResult" type="xs:base64Binary"/>
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="testIn">
        <wsdl:part name="parameters" element="pwsserverincmd:testRequest"/>
    </wsdl:message>
    <wsdl:message name="testOut">
        <wsdl:part name="parameters" element="pwsserverincmd:testResults"/>
    </wsdl:message>
    <wsdl:portType name="pwsserverincmdSoap">
        <wsdl:operation name="test">
            <wsdl:input message="pwsserverincmd:testIn"/>
            <wsdl:output message="pwsserverincmd:testOut"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="pwsserverincmdSoap" type="pwsserverincmd:pwsserverincmdSoap">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="test">
            <soap:operation soapAction="pwsserverincmd:test" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="pwsserverincmd">
        <wsdl:documentation>Link3 Web Service</wsdl:documentation>
        <wsdl:port name="pwsserverincmdSoap" binding="pwsserverincmd:pwsserverincmdSoap">
            <soap:address location="http://168.200.0.164:8026/service/pwsserverincmd/op"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

oehhar added on 2015-05-26 08:19:33 UTC:
When I compare this to the 2.3.7 release log output below, I see differences with the "suppressNS" stuff. So this might be due to this checkin.

L():2015-05-26 10:06:47 5 Entering ::WS::Client::DoCall {1 test Base64Array {MQ== Mg== Mw==}} (::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {})
L():2015-05-26 10:06:47 5 One Option {valueAttrCompatiblityMode} (::WS::Utils::SetOption valueAttrCompatiblityMode)
L():2015-05-26 10:06:47 5 Multiple option pairs (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 10:06:47 5 Setting Option {valueAttrCompatiblityMode} to {1} (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 10:06:47 5 Multiple option pairs (::WS::Utils::SetOption suppressNS {})
L():2015-05-26 10:06:47 5 Setting Option {suppressNS} to {} (::WS::Utils::SetOption suppressNS {})
L():2015-05-26 10:06:47 5 Entering buildDocLiteralCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}} (::WS::Client::buildDocLiteralCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 10:06:47 5 Type = {tns1:testRequest} typeInfoList = {1 0} (::WS::Utils::GetServiceTypeDef Client 1 tns1:testRequest)
L():2015-05-26 10:06:47 5 @6 (::WS::Utils::GetServiceTypeDef Client 1 tns1:testRequest)
L():2015-05-26 10:06:47 5 domNode02C17E30 appendChild [domDoc02C145B0 createElement tns1:testRequest reply] (::WS::Client::buildDocLiteralCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 10:06:48 5 Entering ::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5 	 typeInfoList = {1 0} (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5 	itemList is {Base64Array {type xs:base64Binary() comment {}}} in tns1 (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5 		itemName = {Base64Array} itemDef = {type xs:base64Binary() comment {}} itemType ={xs:base64Binary()} (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5 Expr !1 && !1 (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5 Type = {base64Binary} typeInfoList = {0 0} (::WS::Utils::GetServiceTypeDef Client 1 xs:base64Binary)
L():2015-05-26 10:06:48 5 @3 (::WS::Utils::GetServiceTypeDef Client 1 xs:base64Binary)
L():2015-05-26 10:06:48 5 		itemName = {Base64Array} itemDef = {type xs:base64Binary() comment {}} typeInfoList = {0 1} itemXns = {tns1} tmpInfo = {type xs:base64Binary xns xs} attrList = {} (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 4 		itemName = {Base64Array} itemDef = {type xs:base64Binary() comment {}} typeInfoList = {0 1} isAbstract = {false} (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5 Leaving ::WS::Utils::convertDictToType with xml: <tns1:testRequest> (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5     <tns1:Base64Array>MQ==</tns1:Base64Array> (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5     <tns1:Base64Array>Mg==</tns1:Base64Array> (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5     <tns1:Base64Array>Mw==</tns1:Base64Array> (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5 </tns1:testRequest> (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5  (::WS::Utils::convertDictToType Client 1 domDoc02C145B0 domNode02C17E5C {Base64Array {MQ== Mg== Mw==}} tns1:testRequest 0)
L():2015-05-26 10:06:48 5 Leaving ::WS::Client::buildDocLiteralCallquery with {<?xml version="1.0"  encoding="utf-8"?> (::WS::Client::buildDocLiteralCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 10:06:48 5 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:tns1="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:w="http://schemas.xmlsoap.org/wsdl/" xmlns:tns2="http://schemas.xmlsoap.org/wsdl/http/" xmlns:tns3="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:d="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns4="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><tns1:testRequest><tns1:Base64Array>MQ==</tns1:Base64Array><tns1:Base64Array>Mg==</tns1:Base64Array><tns1:Base64Array>Mw==</tns1:Base64Array></tns1:testRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>} (::WS::Client::buildDocLiteralCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 10:06:48 5 Multiple option pairs (::WS::Utils::SetOption suppressNS {})
L():2015-05-26 10:06:48 5 Setting Option {suppressNS} to {} (::WS::Utils::SetOption suppressNS {})
L():2015-05-26 10:06:48 5 Leaving ::WS::Client::buildCallquery with {<?xml version="1.0"  encoding="utf-8"?> (::WS::Client::buildCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 10:06:48 5 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:tns1="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:w="http://schemas.xmlsoap.org/wsdl/" xmlns:tns2="http://schemas.xmlsoap.org/wsdl/http/" xmlns:tns3="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:d="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns4="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><tns1:testRequest><tns1:Base64Array>MQ==</tns1:Base64Array><tns1:Base64Array>Mg==</tns1:Base64Array><tns1:Base64Array>Mw==</tns1:Base64Array></tns1:testRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>} (::WS::Client::buildCallquery 1 test http://168.200.0.164:8026/service/pwsserverincmd/op {Base64Array {MQ== Mg== Mw==}})
L():2015-05-26 10:06:48 5 Multiple option pairs (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 10:06:48 5 Setting Option {valueAttrCompatiblityMode} to {1} (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 10:06:48 4 ::http::geturl http://168.200.0.164:8026/service/pwsserverincmd/op -query {<?xml version="1.0"  encoding="utf-8"?> (::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {})
L():2015-05-26 10:06:48 4 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:tns1="http://168.200.0.164:8026/service/pwsserverincmd" xmlns:w="http://schemas.xmlsoap.org/wsdl/" xmlns:tns2="http://schemas.xmlsoap.org/wsdl/http/" xmlns:tns3="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:d="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns4="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><tns1:testRequest><tns1:Base64Array>MQ==</tns1:Base64Array><tns1:Base64Array>Mg==</tns1:Base64Array><tns1:Base64Array>Mw==</tns1:Base64Array></tns1:testRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>} -type {text/xml;charset=utf-8} -headers {SOAPAction pwsserverincmd:test} (::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {})
L():2015-05-26 10:06:48 5 	Received: <?xml version="1.0"  encoding="utf-8"?> (::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {})
L():2015-05-26 10:06:48 5 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:pwsserverincmd="http://168.200.0.164:8026/service/pwsserverincmd"><SOAP-ENV:Body><pwsserverincmd:testResults><pwsserverincmd:testResult>QTE=</pwsserverincmd:testResult><pwsserverincmd:testResult>QTI=</pwsserverincmd:testResult></pwsserverincmd:testResults></SOAP-ENV:Body></SOAP-ENV:Envelope> (::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {})
L():2015-05-26 10:06:48 5 One Option {valueAttrCompatiblityMode} (::WS::Utils::SetOption valueAttrCompatiblityMode)
L():2015-05-26 10:06:48 5 Multiple option pairs (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 10:06:48 5 Setting Option {valueAttrCompatiblityMode} to {1} (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 10:06:48 5 In parseResults 1 test {<?xml version="1.0"  encoding="utf-8"?> (::WS::Client::parseResults 1 test {<?xml version="1.0"  encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:pwsserverincmd="http://168.200.0.164:8026/service/pwsserverincmd"><SOAP-ENV:Body><pwsserverincmd:testResults><pwsserverincmd:testResult>QTE=</pwsserverincmd:testResult><pwsserverincmd:testResult>QTI=</pwsserverincmd:testResult></pwsserverincmd:testResults></SOAP-ENV:Body></SOAP-ENV:Envelope>})
L():2015-05-26 10:06:48 5 <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:pwsserverincmd="http://168.200.0.164:8026/service/pwsserverincmd"><SOAP-ENV:Body><pwsserverincmd:testResults><pwsserverincmd:testResult>QTE=</pwsserverincmd:testResult><pwsserverincmd:testResult>QTI=</pwsserverincmd:testResult></pwsserverincmd:testResults></SOAP-ENV:Body></SOAP-ENV:Envelope>} (::WS::Client::parseResults 1 test {<?xml version="1.0"  encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:pwsserverincmd="http://168.200.0.164:8026/service/pwsserverincmd"><SOAP-ENV:Body><pwsserverincmd:testResults><pwsserverincmd:testResult>QTE=</pwsserverincmd:testResult><pwsserverincmd:testResult>QTI=</pwsserverincmd:testResult></pwsserverincmd:testResults></SOAP-ENV:Body></SOAP-ENV:Envelope>})
L():2015-05-26 10:06:48 5 Using namespaces {ENV http://schemas.xmlsoap.org/soap/envelope/ xsi http://www.w3.org/2001/XMLSchema-instance xs http://www.w3.org/2001/XMLSchema tns1 http://168.200.0.164:8026/service/pwsserverincmd w http://schemas.xmlsoap.org/wsdl/ tns2 http://schemas.xmlsoap.org/wsdl/http/ tns3 http://schemas.xmlsoap.org/wsdl/mime/ xs http://www.w3.org/2001/XMLSchema d http://schemas.xmlsoap.org/wsdl/soap/ tns4 http://schemas.xmlsoap.org/soap/encoding/} (::WS::Client::parseResults 1 test {<?xml version="1.0"  encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:pwsserverincmd="http://168.200.0.164:8026/service/pwsserverincmd"><SOAP-ENV:Body><pwsserverincmd:testResults><pwsserverincmd:testResult>QTE=</pwsserverincmd:testResult><pwsserverincmd:testResult>QTI=</pwsserverincmd:testResult></pwsserverincmd:testResults></SOAP-ENV:Body></SOAP-ENV:Envelope>})
L():2015-05-26 10:06:48 5 Have 1 node under Body (::WS::Client::parseResults 1 test {<?xml version="1.0"  encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:pwsserverincmd="http://168.200.0.164:8026/service/pwsserverincmd"><SOAP-ENV:Body><pwsserverincmd:testResults><pwsserverincmd:testResult>QTE=</pwsserverincmd:testResult><pwsserverincmd:testResult>QTI=</pwsserverincmd:testResult></pwsserverincmd:testResults></SOAP-ENV:Body></SOAP-ENV:Envelope>})
L():2015-05-26 10:06:48 5 root name is {testResults} (::WS::Client::parseResults 1 test {<?xml version="1.0"  encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:pwsserverincmd="http://168.200.0.164:8026/service/pwsserverincmd"><SOAP-ENV:Body><pwsserverincmd:testResults><pwsserverincmd:testResult>QTE=</pwsserverincmd:testResult><pwsserverincmd:testResult>QTI=</pwsserverincmd:testResult></pwsserverincmd:testResults></SOAP-ENV:Body></SOAP-ENV:Envelope>})
L():2015-05-26 10:06:48 5 Calling ::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64 (::WS::Client::parseResults 1 test {<?xml version="1.0"  encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:pwsserverincmd="http://168.200.0.164:8026/service/pwsserverincmd"><SOAP-ENV:Body><pwsserverincmd:testResults><pwsserverincmd:testResult>QTE=</pwsserverincmd:testResult><pwsserverincmd:testResult>QTI=</pwsserverincmd:testResult></pwsserverincmd:testResults></SOAP-ENV:Body></SOAP-ENV:Envelope>})
L():2015-05-26 10:06:48 5 ::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64 0 (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5 	 type def = {definition {testResult {type xs:base64Binary() comment {}}} xns tns1 abstract false} (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5 	 XML of node is <pwsserverincmd:testResults> (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5     <pwsserverincmd:testResult>QTE=</pwsserverincmd:testResult> (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5     <pwsserverincmd:testResult>QTI=</pwsserverincmd:testResult> (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5 </pwsserverincmd:testResults> (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5  (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5 	 partsList is {testResult} (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5 Type = {base64Binary} typeInfoList = {0 0} (::WS::Utils::GetServiceTypeDef Client 1 xs:base64Binary())
L():2015-05-26 10:06:48 5 @3 (::WS::Utils::GetServiceTypeDef Client 1 xs:base64Binary())
L():2015-05-26 10:06:48 5 	partName testResult partType xs:base64Binary() xns tns1 typeInfoList 0 1 (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5 Trying #1 domNode02C17F90 selectNodes tns1:testResult (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5 		 Found 2 testResult (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5 Leaving ::WS::Utils::convertTypeToDict with {testResult {QTE= QTI=}} (::WS::Utils::convertTypeToDict Client 1 domNode02C17F90 tns1:testResults domNode02C17F64)
L():2015-05-26 10:06:48 5 Multiple option pairs (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 10:06:48 5 Setting Option {valueAttrCompatiblityMode} to {1} (::WS::Utils::SetOption valueAttrCompatiblityMode 1)
L():2015-05-26 10:06:48 5 Leaving ::WS::Client::DoCall with {testResult {QTE= QTI=}} (::WS::Client::DoCall 1 test {Base64Array {MQ== Mg== Mw==}} {})
L():2015-05-26 10:06:48 5 Result of web service: 'testResult {QTE= QTI=}' (::pwsclientcalc::pwsclientcalcDataIn 1 {ListField {1 2 3}})
dict dRes
testResult -> 'QTE= QTI='
L():2015-05-26 10:06:48 5 Type = {tns1:testResults} typeInfoList = {1 0} (::WS::Utils::GetServiceTypeDef Client 1 tns1:testResults)
L():2015-05-26 10:06:48 5 @6 (::WS::Utils::GetServiceTypeDef Client 1 tns1:testResults)
L():2015-05-26 10:06:48 5 Type = {base64Binary} typeInfoList = {0 0} (::WS::Utils::GetServiceTypeDef Client 1 xs:base64Binary)
L():2015-05-26 10:06:48 5 @3 (::WS::Utils::GetServiceTypeDef Client 1 xs:base64Binary)
L():2015-05-26 10:06:48 5 Type result dict: VarType xs:base64Binary VarLevel list (::pwsclientcalc::WSDLGetTypeParameters 1 xs:base64Binary() xs:base64Binary())
L():2015-05-26 10:06:48 5 Type result dict: dElements {testResult {VarType xs:base64Binary VarLevel list}} VarLevel complex (::pwsclientcalc::WSDLGetTypeParameters 1 tns1:testResults)
L():2015-05-26 10:06:48 5 > (::pwsclientcalc::ResLoop 1 {} {dElements {testResult {VarType xs:base64Binary VarLevel list}} VarLevel complex} {testResult {QTE= QTI=}})
L():2015-05-26 10:06:48 5 Complex element 'testResult' in name '' (::pwsclientcalc::ResLoop 1 {} {dElements {testResult {VarType xs:base64Binary VarLevel list}} VarLevel complex} {testResult {QTE= QTI=}})

oehhar added on 2015-06-02 15:27:48 UTC:
Proposed fix in branch [bug-ab9ad7b044] in checkin [ea054d339d].

The issue is as follows:

  • Checkin [411a2eb59f] made double quotes around the SOAPAction header. The resulting list was: 'SOAPAction {"ws:action"}'.
  • Then, there is a map that all "{}" are replaced by double quotes, resulting in 'SOAPAction ""ws:action""'.
  • This is not a list any more which causes the http package to complain.

The fix is to remove the map commands:

-                -headers [string map {\{ \" \} \"} $headers] \
+                -headers $headers \
I can only guess the purpose of those. I suppose they are just wrong.

The proposed fix also fixes a supposed list issue:

set svcHeaders [dict get $serviceArr($serviceName) headers]
if {[llength $svcHeaders]} {
-        lappend headers $svcHeaders
+        set headers [concat $headers $svcHeaders]
}

I would be happy for a review.

Harald


oehhar added on 2015-06-16 16:45:19 UTC:
Fixed by commit [284717ad56]