Ellenőrizze a kimenő üzenetekben beállított SOAP Action viselkedési változásait

Ez a viselkedés a WebSphere Application Server 8 változatban a SOAP Action beállítás megállapítási módjának tekintetében változott a JAX-WS Dispatch ügyfelek kimenő üzeneteiben. A V8 előtti kiadásokban, ha a Dispatch ügyfélalkalmazás nem adott meg SOAP műveletet, akkor a JAX-WS futási környezet nem a helyes SOAP műveletet küldte a kimenő üzenetben. Helyette anonim műveletet állított be. Most a 8 változatban, ha a SOAP Action beállítást az ügyfélalkalmazás nem adja meg, akkor a JAX-WS futási környezet értelmezi a kimenő üzenetet, hogy megállapítsa a hívott műveletet és azt használja a SOAP Action megfelelő értékének megállapításához.

Ez a szabály a Dispatch ügyfél létrehozására vonatkozó hívásokat akkor jelöli meg, ha:

A WebSphere Application Server hagyományos kódolási eljárásai Liberty az ügyfélalkalmazás számára, hogy SOAP műveletet biztosítson a JAX-WS rendszerrel javax.xml.ws.BindingProvider Tulajdonságok SOAPACTION_USE_PROPERTY és a SOAPACTION_URI_PROPERTY . A megadott SOAP művelet kerül felhasználásra és a kimenő üzenet értelmezése nem fog megtörténni, tekintet nélkül a DISPATCH_CLIENT_OUTBOUND_RESOLUTION tulajdonságban megadott értéket.

Ez a példa a követendő kódot mutatja be, ahol a SOAP művelet a kérés kontextusában van beállítva. Ha a SOAPACTION_URI_PROPERTY Nincs beállítva vagy ha SOAPACTION_USE_PROPERTY Be van állítva false , a hívás a createDispatch() A (z) metódus megjelöli ezt a szabályt.

Példa:

//Create a dispatch instance
< átívelő osztály= "indent2"> < /spanyolul: SOAPMessage> indítás =
service.createDispatch(portName, SOAPMessage.class, Service.Mode.MESSAGE);

// Use Dispatch as BindingProvider
BindingProvider bp = (BindingProvider) dispatch;

// Configure RequestContext to send SOAPAction HTTP Header
leképezés: karaktersorozat, objektum > rc = bp.getRequestContext();
rc.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
rc.put(BindingProvider.SOAPACTION_URI_PROPERTY, "hello");

Mivel az értelmezés költséges lehet, a hagyományos WebSphere Application Server kiszolgálón egy Rendszer szintű tulajdonság beállításával az értelmezés végleg, a JAX-WS kérésüzenet kontextusában pedig üzenetenkénti alapon letiltható. Ha az értelmezés tiltott, akkor a SOAP Action beállítás a kimenő üzenetben továbbra is anonim műveletre lesz beállítva, ahogyan korábban. A letiltó tulajdonság értéke konstans org.apache.axis2.jaxws.Constants.DISPATCH_CLIENT_OUTBOUND_RESOLUTION Amelynek karaktersorozat értéke jaxws.dispatch.outbound.operation.resolution.enable Ha a tulajdonság nincs beállítva, akkor a rendszer úgy értelmezi, mint a String true , amely engedélyezi a kimenő művelet felbontását. Tulajdonság beállítása értékre false A letiltja a kimenő művelet felbontását.

További információkért lásd: