In WebSphere Application Server V8, il comportamento relativo al modo in cui l'impostazione Azione SOAP viene determinata nei messaggi in uscita per i client di invio JAX-WS è stato modificato. Nelle release precedenti alla V8, se un'azione SOAP non viene fornita dall'applicazione client di invio, l'ambiente runtime JAX-WS non invia l'azione SOAP corretta nel messaggio in uscita. Invece, imposta l'azione su un'operazione anonima. IN V8, se l'azione SOAP non viene fornita dall'applicazione client, l'ambiente runtime JAX-WS analizza il messaggio in uscita per determinare l'operazione richiamata e la utilizza per determinare il valore appropriato per l'azione SOAP.
Questa regola contrassegna le chiamate per la creazione di un client di invio quando:
Procedure ottimali di codifica per WebSphere Application Server tradizionale e Liberty consente all'applicazione client di fornire un'azione SOAP con JAX - WS javax.xml.ws.BindingProvider Proprietà SOAPACTION_USE_PROPERTY e il SOAPACTION_URI_PROPERTY . L'azione SOAP fornita verrà utilizzata e l'analisi del messaggio in uscita non si verificherà indipendentemente dall'impostazione del DISPATCH_CLIENT_OUTBOUND_RESOLUTION .
Questo esempio mostra un codice ottimale con l'azione SOAP impostata nel contesto delle richiesta. Se il SOAPACTION_URI_PROPERTY non è impostato o se SOAPACTION_USE_PROPERTY è impostato su false , la chiamata al createDispatch() verrà contrassegnato da questa regola.
Esempio:Poiché questa analisi può essere dispendiosa, è possibile impostare una proprietà su WebSphere Application Server traditional a livello di sistema (per disabilitare sempre l'analisi) oppure nel contesto del messaggio di richiesta JAX-WS (per disabilitare l'analisi in base al messaggio). Se l'analisi è disabilitata, l'azione SOAP nel messaggio in uscita continuerà ad essere impostata su un'azione anonima come in precedenza. La proprietà di disabilitazione è definita come costante org.apache.axis2.jaxws.Constants.DISPATCH_CLIENT_OUTBOUND_RESOLUTION con un valore stringa di jaxws.dispatch.outbound.operation.resolution.enable . Se la proprietà non è impostata, viene interpretata come stringa true , abilitando la risoluzione dell'operazione in uscita. Impostazione della proprietà su false disabiliterà la risoluzione dell'operazione in uscita.
Per ulteriori informazioni, consultare: