Comportamentul s-a modificat în WebSphere Application Server V8 cu privire la felul în care este determinată setarea SOAP Action pentru mesajele de ieşire pentru clienţii JAX-WS Dispatch. În ediţiile mai vechi de V8, dacă nu este furnizată o acţiune SOAP de către aplicaţia client Dispatch, mediul runtime JAX-WS nu trimite acţiunea SOAP corectă pentru mesajul de ieşire. În loc de aceasta, setează acţiunea la o operaţie anonimă. Acum, în V8, dacă nu este furnizată acţiunea SOAP de către aplicaţia client, mediul runtime JAX-WS parsează mesajul de ieşire pentru a determina ce operaţiune este invocată şi utilizează acest rezultat pentru a stabili valoarea corespunzătoare pentru SOAP Action.
Această regulă semnalează apelurile pentru crearea unui client Dispatch când:
Cele mai bune practici de codificare pentru WebSphere Application Server și Liberty este pentru aplicația client pentru a oferi o acțiune SOAP cu JAX-WS javax.xml.ws.BindingProvider proprietăţi SOAPACTION_USE_PROPERTY și SOAPACTION_URI_PROPERTY . Acțiunea SOAP furnizată va fi utilizată și parsarea mesajului de ieșire nu va avea loc indiferent de setarea DISPATCH_CLIENT_OUTBOUND_RESOLUTION .
Acesta este un exemplu de cod conform celor mai bune practici, cu setarea SOAP Action pentru contextul cererii. Dacă SOAPACTION_URI_PROPERTY nu este setat sau dacă SOAPACTION_USE_PROPERTY este setat la false , apelul la createDispatch() Metoda va fi marcată de această regulă.
Exemplu:Deoarece această parsare poate fi costisitoare, poate fi setată o proprietate pentru WebSphere Application Server tradiţional la nivelul Sistem (pentru ca parsarea să fie întotdeauna dezactivată) sau pentru JAX-WS Request Message Context (pentru ca parsarea să fie dezactivată per mesaj). Dacă este dezactivată parsarea, acţiunea SOAP din mesajul de ieşire va fi setată în continuare la o operaţie anonimă, ca înainte. Proprietatea dezactivarea este definită ca fiind constantă org.apache.axis2.jaxws.Constants.DISPATCH_CLIENT_OUTBOUND_RESOLUTION cu o valoare String de jaxws.dispatch.outbound.operation.resolution.enable În cazul în care proprietatea nu este setat, acesta este interpretat ca String true , permițând rezoluția operațiunii de ieșire. Stabilirea proprietății la false va dezactiva rezoluția operațiunii de ieșire.
Pentru informaţii suplimentare, vedeţi: