Thanks for your reply, Anne, however it does not seem to make any
difference. I have attached my updated WSDL, from which I regenerated the
Axis classes and re-deployed the service, but I'm getting the exact same
SOAP message as before.

I wondered if perhaps the soap:header message should be capitalized to
tns:ProcessMessageIn, but that did not help, either.

Any other thoughts?

> Matt,
>
> A few mistakes in your WSDL:
>
> You must specify the <soap:body> definition before the <soap:header>
> definition. Because you have defined two parts in the message, the
> <soap:body> must include the "parts" attribute and specify the specific
> part
> that goes in the body. Your <soap:header> must refer to the message
> (tns:processMessageIn) that contains the header part definition. E.g.,
>
>                        <input>
>                                <soap:body parts="processMessage"
> use="literal"/>
>                                 <soap:header
> message="tns:processMessageIn"
>                                        part="requestHeader"
> use="literal"/>
>                        </input>
>
> Anne
> On 5/17/06, Matt Magoffin <[EMAIL PROTECTED]> wrote:
>>
>> Hello, I am trying to work with a WSDL that requires a header element,
>> and
>> am having trouble getting Axis 1.4 to correctly generate the SOAP
>> message.
>> I've generated Axis classes from the WSDL. The best I've been able to do
>> is get the header element to show up correctly in the SOAP header, but
>> then it also shows up as the body element, with the expected body
>> element
>> as a child, like this (XML truncated as to simplify):
>>
>> <soapenv:Envelope
>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; ...
>>   <soapenv:Header>
>>     <ns1:payloadManifest
>> xmlns:ns1="http://www.starstandards.org/webservices/...
>>       <manifest element="ProcessSalesLead" id="Content0"
>> namespaceURI="...
>>     </ns1:payloadManifest>
>>   </soapenv:Header>
>>   <soapenv:Body>
>>     <payloadManifest
>> xmlns="http://www.starstandards.org/webservices/2003/12/transport";>
>>       <ProcessMessage/>
>>     </payloadManifest>
>>   </soapenv:Body>
>> </soapenv:Envelope>
>>
>> Here the <ns1:payloadManifest> element is as expected in the
>> <soapenv:Header> but the expected element in <soapenv:Body> is the
>> <ProcessMessage/> element, not another <payloadManifest> element.
>>
>> The relevant WSDL I have is arranged as such:
>>
>>         <message name="ProcessMessageIn">
>>                 <part name="processMessage"
>> element="starws:ProcessMessage"/>
>>                 <part name="requestHeader"
>> element="starws:payloadManifest"/>
>>         </message>
>>
>>         <message name="ProcessMessageOut">
>>                 <part name="processMessageResponse"
>> element="starws:ProcessMessageResponse"/>
>>                 <part name="responeHeader"
>> element="starws:payloadManifest"/>
>>         </message>
>>
>>         <portType name="StarTransportPortTypes">
>>                 <operation name="ProcessMessage">
>>                         <input message="tns:ProcessMessageIn"/>
>>                         <output message="tns:ProcessMessageOut"/>
>>                 </operation>
>>         </portType>
>>
>>         <binding name="StarTransport" type="tns:StarTransportPortTypes">
>>                 <soap:binding transport="
>> http://schemas.xmlsoap.org/soap/http";
>>                         style="document"/>
>>                 <operation name="ProcessMessage">
>>                         <soap:operation
>>                                 soapAction="
>> http://www.starstandards.org/.../ProcessMessage";
>>                                 style="document"/>
>>                         <input>
>>                                 <soap:header
>> message="tns:ManifestHeader"
>>                                         part="requestHeader"
>> use="literal"/>
>>                                 <soap:body use="literal"/>
>>                         </input>
>>                         <output>
>>                                 <soap:header
>> message="tns:ManifestHeader"
>>                                         part="responseHeader"
>> use="literal"/>
>>                                 <soap:body use="literal"/>
>>                         </output>
>>                 </operation>
>>         </binding>
>>
>> Anything look fishy here? I'm at a loss at this point... I've attached
>> the
>> full WSDL for reference.
>>
>> -- m@
>>
>>
>>
>

Attachment: StarTransport.wsdl
Description: Binary data

Reply via email to