Zkontrolovat změnu chování v sadě akcí SOAP v odchozích zprávách

Chování se v produktu WebSphere Application Server verze 8 změnilo ve způsobu určování nastavení akce SOAP na odchozí zprávy pro klienty odbavení JAX-WS. Pokud ve vydáních předcházejících verzi 8 nebyla akce SOAP poskytnuta aplikací klienta odbavení, běhové prostředí JAX-WS neodešle správnou akci SOAP v odchozí zprávě. Místo toho nastaví akci na anonymní operaci. Nyní ve verzi 8, pokud akce SOAP není poskytována aplikací klienta, běhové prostředí JAX-WS provede analýzu odchozí zprávy s cílem určit vyvolanou operaci a použít ji k určení odpovídající hodnoty akce SOAP.

Toto pravidlo označí volání k vytvoření klienta odbavení, pokud:

Doporučené postupy kódování pro server WebSphere Application Server traditional a Liberty je určena pro klientskou aplikaci, aby poskytovala akci SOAP s JAX-WS. javax.xml.ws.BindingProvider Vlastnosti SOAPACTION_USE_PROPERTY a také SOAPACTION_URI_PROPERTY . Bude použita poskytnutá akce SOAP a analýza odchozí zprávy se neprovede bez ohledu na nastavení DISPATCH_CLIENT_OUTBOUND_RESOLUTION .

Tento příklad zobrazuje kód doporučených postupů se sadou akcí SOAP v kontextu požadavku. Pokud jsou hodnoty SOAPACTION_URI_PROPERTY není nastaveno, nebo pokud SOAPACTION_USE_PROPERTY je nastaveno na false , volání na createDispatch() Metoda bude označena tímto pravidlem.

Příklad:

//Vytvořit instanci odbavení
< span class= "indent2"> < /span> Dispatch < SOAPMessage> odbavení =
service.createDispatch(portName, SOAPMessage.class, Service.Mode.MESSAGE);

// Použít odbavení jako BindingProvider
BindingProvider bp = (BindingProvider) dispatch;

// Konfigurovat RequestContext k odeslání záhlaví SOAPAction HTTP
Map < String, Object > rc = bp.getRequestContext();
rc.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
rc.put(BindingProvider.SOAPACTION_URI_PROPERTY, "hello");

Protože tato analýza může být drahá, může být vlastnost nastavena na serveru WebSphere Application Server traditional na úrovni System (aby byla vždy zakázána syntaktická analýza) nebo JAX-WS Request Message Context (k zakázání analýzy na základě zpráv). Je-li analýza zakázána, akce SOAP v odchozí zprávě bude i nadále nastavena na anonymní operaci jako předtím. Vlastnost zakázání je definována jako konstanta org.apache.axis2.jaxws.Constants.DISPATCH_CLIENT_OUTBOUND_RESOLUTION s hodnotou typu String (řetězec) jaxws.dispatch.outbound.operation.resolution.enable . Není-li vlastnost nastavena, je interpretována jako řetězec true , povolení rozlišení odchozí operace. Nastavení vlastnosti na false zakáže rozlišení odchozí operace.

Další informace viz: