wsimport nicht mit komplexen input-Typen

Wenn ich mit wsimport generieren proxies für einige Dienste, wird die resultierende Methode die Signatur für jeden port scheint nicht zu verwenden, die komplexe Typen angegeben, die in der WSDL; doch ich habe bemerkt, dass einige andere Dienstleistungen, die es tut.

Dies geschehen ist, auf mehrere Dienste, aber das jüngste Beispiel ist Amazon ' s AWSEConsumerService (link zur WSDL). Wenn ich generieren die service-proxy-code mit wsimport, bekomme ich Signaturen wie die folgende für jeden port.

@WebMethod(operationName = "ItemLookup", action = "http://soap.amazon.com/ItemLookup")
@RequestWrapper(localName = "ItemLookup", targetNamespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01", className = "com.aws.CommerceService.ItemLookup")
@ResponseWrapper(localName = "ItemLookupResponse", targetNamespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01", className = "com.aws.CommerceService.ItemLookupResponse")
public void itemLookup(
    @WebParam(name = "MarketplaceDomain", targetNamespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01")
    String marketplaceDomain,
    @WebParam(name = "AWSAccessKeyId", targetNamespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01")
    String awsAccessKeyId,
    @WebParam(name = "AssociateTag", targetNamespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01")
    String associateTag,
    @WebParam(name = "Validate", targetNamespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01")
    String validate,
    @WebParam(name = "XMLEscaping", targetNamespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01")
    String xmlEscaping,
    @WebParam(name = "Shared", targetNamespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01")
    ItemLookupRequest shared,
    @WebParam(name = "Request", targetNamespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01")
    List<ItemLookupRequest> request,
    @WebParam(name = "OperationRequest", targetNamespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01", mode = WebParam.Mode.OUT)
    Holder<OperationRequest> operationRequest,
    @WebParam(name = "Items", targetNamespace = "http://webservices.amazon.com/AWSECommerceService/2011-08-01", mode = WebParam.Mode.OUT)
    Holder<List<Items>> items);

Ich würde erwarten, dass diese Methode nehmen, die einzigen komplexen parameter angegeben, die von der WSDL (in diesem Fall ein ItemLookup-Objekt). Bin ich im Grunde Missverständnis etwas oder gibt es etwas abnormales passiert mit der code-Generierung?

InformationsquelleAutor Jeffrey P | 2011-11-04
Schreibe einen Kommentar