-
Bug
-
Resolution: Done
-
Major
-
None
-
None
The schema
<complexType name="ConfigHeader">
<sequence>
<annotation>
<documentation>
This is the configuration header
</documentation>
</annotation>
<element name="message" type="string"/>
<element name="testName" type="string"/>
</sequence>
<attribute ref="env:mustUnderstand"/>
</complexType>
has a reference to the soap:mustUnderstand attribute that can be set on SOAPHeaderElements
The message put on the wire by the client is
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<env:Header>
<ns1:ConfigHeaderRequest mustUnderstand='false' xmlns:ns1='http://headertestservice.org/types4' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<message>Config Header</message>
<testName>GoodOrderTestWithSoapHeaderAndMUFalse</testName>
</ns1:ConfigHeaderRequest>
</env:Header>
<env:Body>
<ns1:ProductOrderRequest xmlns:ns1='http://headertestservice.org/types4' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<item>
<productName>Product-1</productName>
<productCode>100</productCode>
<quantity>10</quantity>
<price>119</price>
</item>
<customerInfo>
<creditcard>1201-4465-1567-9823</creditcard>
<name>John Doe</name>
<street>1 Network Drive</street>
<city>Burlington</city>
<state>Ma</state>
<zip>01837</zip>
<country>USA</country>
</customerInfo>
</ns1:ProductOrderRequest>
</env:Body>
</env:Envelope>
It should read
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
<env:Header>
<ns1:ConfigHeaderRequest env:mustUnderstand='0' xmlns:ns1='http://headertestservice.org/types4' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<message>Config Header</message>
<testName>GoodOrderTestWithSoapHeaderAndMUFalse</testName>
</ns1:ConfigHeaderRequest>
</env:Header>
<env:Body>
<ns1:ProductOrderRequest xmlns:ns1='http://headertestservice.org/types4' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<item>
<productName>Product-1</productName>
<productCode>100</productCode>
<quantity>10</quantity>
<price>119</price>
</item>
<customerInfo>
<creditcard>1201-4465-1567-9823</creditcard>
<name>John Doe</name>
<street>1 Network Drive</street>
<city>Burlington</city>
<state>Ma</state>
<zip>01837</zip>
<country>USA</country>
</customerInfo>
</ns1:ProductOrderRequest>
</env:Body>
</env:Envelope>
Note the prefix and the value. Valid values for mustUnderstand are 0|1, true and false are not allowed.
The error is
2005-09-01 12:53:34,093 ERROR [org.jboss.ws.server.AbstractServlet:63] Error processing web service request
java.lang.IllegalStateException: Attribute mustUnderstand found in jaxrpc-mapping but not in the schema.
at org.jboss.ws.jaxb.JAXBUnmarshallerImpl.bindSchemaToJava(JAXBUnmarshallerImpl.java:430)
at org.jboss.ws.jaxb.JAXBUnmarshallerImpl.initSchemaBinding(JAXBUnmarshallerImpl.java:278)
at org.jboss.ws.jaxb.JAXBUnmarshallerImpl.unmarshal(JAXBUnmarshallerImpl.java:69)
at org.jboss.ws.jaxrpc.encoding.JAXBDeserializer.deserialize(JAXBDeserializer.java:85)