Hi,

The Axis 1.1 seems to ignore soap:header declarations when using MIME binding.
Instead it sends all message parts in SOAP body. Here is the wsdl binding section:

    <wsdl:binding name="StoreServiceSOAPBinding" type="tns:StoreService">
        <soap:binding style="rpc"
                      transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="store">
            <wsdl:input>
                <mime:multipartRelated>
                    <mime:part>
                        <soap:body parts="fileName" use="encoded"
                            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                        <soap:header message="tns:FileToStore" part="context" 
use="encoded"
                            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                    </mime:part>
                    <mime:part>
                        <mime:content part="fileContent" 
type="application/octetstream"/>
                    </mime:part>
                </mime:multipartRelated>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="encoded"
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>

The context part should have been send as SOAP header, but it was not
(the whole message was in SOAP body).
When I dropped "mime" declarations:

    <wsdl:binding name="StoreServiceSOAPBinding" type="tns:StoreService">
        <soap:binding style="rpc"
                      transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="store">
            <wsdl:input>
                        <soap:body parts="fileName fileContent" use="encoded"
                            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
                        <soap:header message="tns:FileToStore" part="context" 
use="encoded"
                            encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="encoded"
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>

then everything worked fine. 

Am I doing something wrong, or it is Axis bug?

Regards,
Tomasz

Reply via email to