[ 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

Reply via email to