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