Pokud se vám stane, že píšete WSDL a z něj generujete potřebné třídy v Javě, přičemž se vám nad "port třídou" pořád objevuje protivná anotace
@SOAPBinding(parameterStyle=ParameterStyle.BARE)
- a to i přestože se zoufale pokoušíte v bindings měnit nastavení enableWrapperStyle na false/true, aniž by to mělo jakýkoliv efekt, vězte, že krom nutných podmínek, o nichž se dočtete na webu, musíte splnit ještě jednu zásadní, která z popisů různých kombinací RPC/Document/Wrapped tak nějak vyplývá, ale nedochází vám.
Možná vám tato podmínka dojde, když se podíváte, kde všude se vyskytuje "MyOperation" v následující ukázce:
<wsdl:binding name="MyBinding" type="MyServicePort"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="MyOperation"> ... <wsdl:portType name="MyServicePort"> <wsdl:operation name="MyOperation"> <wsdl:input message="MyOperation"/> ... <wsdl:message name="MyOperation"> <wsdl:part name="parameters" element="data:MyOperation"/> </wsdl:message> ... <wsdl:types> <xsd:element name="MyOperation" type="data:MujPozadavekTyp"/> ...
Zkoušel jsem různé změny do úmoru - jakmile jsem některé ze jmen změnil, objevila se anotace a interface obsahoval vstupní parametr typu MyOperation, zatímco takto anotace v kódu nebyla a vstupní parametry odpovídaly sekvenci atributů elementu MyOperation.
Samozřejmě, pokud by metoda služby měla parametrů více, než je zdrávo, budu chtít docílit pravého opaku ...
Tak, a je to venku - a teď můžete pokračovat v práci :-)
Žádné komentáře:
Okomentovat