Получение имен входных параметров для операций, представленных в файле WSDL | Мыло | Джава - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь прочитать все параметры, необходимые для отправки запроса на мыло, пример wsdl, который я пытаюсь прочитать, имеет следующий тип:

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="some url">
....
<xs:element name="Bin">
<xs:complexType>
<xs:element name="BinParameter" minOccurs="0" maxOccurs="unbounded">
....
<xs:element name="CartAdd">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="MarketplaceDomain" type="xs:string" minOccurs="0"/>
            <xs:element name="AssociateTag" type="xs:string" minOccurs="0"/>
            <xs:element name="Request" type="tns:CartAddRequest" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
....

Я использую следующий код для получения списка доступных операций:

URL wsdlURL =new URL("https://<some soap url>/sample.wsdl");
WSDLReader reader = WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry();
definition = reader.readWSDL(wsdlURL.toString());
Map<QName, PortType> portTypes = definition.getAllPortTypes();
for (QName key : portTypes.keySet()) {
    List<Operation> operations = portTypes.get(key).getOperations();
    for (Operation operation : operations) {
        Map col = operation.getInput().getMessage().getParts();
    }
}

Используется WSDLUtil из "org.apache.axis2.wsdl.WSDLUtil". Используя приведенный выше код, мы можем получить доступ ко всем операциям (например, "CartAdd"). Как мы можем получить все параметры, необходимые для данной операции? (в данном случае «MarketplaceDomain», «AssociateTag» и т. д.)? Любой пример кода или ссылки помогут.

...