[ http://jira.codehaus.org/browse/XFIRE-394?page=all ]
Dan Diephouse closed XFIRE-394:
-------------------------------
Resolution: Fixed
Fix Version: 1.1
Thanks, but I fixed this in SVN two days ago :-) Try the SNAPSHOT on the
download page - it should have the fix in it.
> WSDLServiceBuilder uses the name of the schema type rather than the part name
> to create MessagePartInfo when using dynamic client
> ---------------------------------------------------------------------------------------------------------------------------------
>
> Key: XFIRE-394
> URL: http://jira.codehaus.org/browse/XFIRE-394
> Project: XFire
> Type: Bug
> Components: Core
> Versions: 1.0, 1.1-RC1
> Reporter: Ted Sanne
> Assignee: Dan Diephouse
> Fix For: 1.1
>
>
> In createMessageParts(MessagePartContainer info, Message msg) in
> org.codehaus.xfire.wsdl11.parser.WSDLServiceBuild there is the following code
> snippets:
> QName typeName = entry.getTypeName();
> if (typeName != null)
> {
> QName partName = new QName(getTargetNamespace(),
> entry.getName());
> MessagePartInfo part = info.addMessagePart(typeName, null);
> part.setSchemaElement(false);
>
> part.setSchemaType(getBindingProvider().getSchemaType(typeName, service));
> }
> // We've got a concrete schema type
> QName elementName = entry.getElementName();
> if (elementName != null)
> {
> MessagePartInfo part = info.addMessagePart(elementName, null);
>
> part.setSchemaType(getBindingProvider().getSchemaType(typeName, service));
> }
> Inside of both of the if tests, info.addMessage is called with the name of
> the schema type rather than the name of the part itself. When using the
> dynamic client calling an operation that lookes like this:
> <wsdl:message name="getBatchDetailsRequest">
> <wsdl:part name="localId" type="xsd:string" />
> <wsdl:part name="trdProperties" type="xsd:boolean" />
> <wsdl:part name="propertyLog" type="xsd:boolean" />
> <wsdl:part name="stationList" type="xsd:boolean" />
> <wsdl:part name="transList" type="xsd:boolean" />
> </wsdl:message>
> I get an error saying that there is no part named "string".
> The code in WSDLServiceBuilder should should probably look like this:
> // We're extending an abstract schema type
> QName typeName = entry.getTypeName();
> if (typeName != null)
> {
> QName partName = new QName(getTargetNamespace(),
> entry.getName());
> MessagePartInfo part = info.addMessagePart(partName, null);
> part.setSchemaElement(false);
>
> part.setSchemaType(getBindingProvider().getSchemaType(typeName, service));
> }
> // We've got a concrete schema type
> QName elementName = entry.getElementName();
> if (elementName != null)
> {
> QName partName = new QName(getTargetNamespace(),
> entry.getName());
> MessagePartInfo part = info.addMessagePart(partName, null);
>
> part.setSchemaType(getBindingProvider().getSchemaType(elementName, service));
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira