Description
paul watson opened SWS-101 and commented
Parsing xml schema files with xs:element tags have do not a 'name' attribute causes the builder to fail with the following exception when requesting the wsdl:
java.lang.NullPointerException
at org.springframework.ws.wsdl.wsdl11.builder.XsdBase dSoap11Wsdl4jDefinitionBuilder.isRequestMessage(Xs dBasedSoap11Wsdl4jDefinitionBuilder.java:244)
at org.springframework.ws.wsdl.wsdl11.builder.XsdBase dSoap11Wsdl4jDefinitionBuilder.buildMessages(XsdBa sedSoap11Wsdl4jDefinitionBuilder.java:223)
at org.springframework.ws.wsdl.wsdl11.builder.Abstrac tWsdl4jDefinitionBuilder.buildMessages(AbstractWsd l4jDefinitionBuilder.java:115)
I have tested a fix locally, and adding a null check to the element name within the following method resolves this problem:
protected void buildMessages(Definition definition) throws WSDLException {
NodeList elements = schemaElement.getElementsByTagNameNS(
SCHEMA_NAMESPACE_URI, "element");
for (int i = 0; i < elements.getLength(); i++) {
Element element = (Element) elements.item(i);
QName elementName = getSchemaElementName(element);
if ((elementName != null)
&& (isRequestMessage(elementName) || isResponseMessage(elementName))) {
Message message = definition.createMessage();
populateMessage(message, element);
Part part = definition.createPart();
populatePart(part, elementName);
message.addPart(part);
message.setUndefined(false);
definition.addMessage(message);
}
}
}
Affects: 1.0 M3
Attachments:
- XsdBasedSoap11Wsdl4jDefinitionBuilder.java (15.48 kB)