Настройка генерации заголовков SOAP в файле WSDL - PullRequest
0 голосов
/ 08 октября 2019

Я хотел настроить генерацию мыльных заголовков в файле WSDL. Для добавления заголовков я сделал следующее в файле WSDL:

1) Добавил элемент в файл WSDL для заголовка безопасности:

<xsd:element name="Security">
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="wsse:SecurityHeaderType">
<xsd:sequence>
<xsd:element ref="wsse:UsernameToken"/>
<xsd:element ref="wsse:Password"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>

2) Добавил следующее сообщение, котороеотносится к добавленному выше элементу:

<wsdl:message name="Header">
<wsdl:part element="ns1:Security" name="Security"/>
</wsdl:message>

3) И следующее в заголовке под:

<wsdl:input>
<soap:body use="literal" />
<soap:header use="literal" message="ns1:Header" part="Security"/> // line A
</wsdl:input>

Разница в ожидаемом и сгенерированном результате: enter image description here

Как видите, у меня неправильное пространство имен для заголовка безопасности. Я установил его на строку, помеченную как строка A. Если я установлю message = "wsse: Header", то я не получу элемент, определенный в пространстве имен ns1. У меня также есть проблема с заголовком UsernameToken. Элемент пароля должен быть внутри него, но я не нахожу способа настроить это, поскольку я имею в виду wsse: UsernameToken.

...