Die WS-Addressing-Unterstützung (Web Services Addressing) stellt Mechanismen für die Adressierung von Web-Services
und die Bereitstellung von Adressierungsinformationen in Nachrichten bereit. In Clients ist die WS-Addressing-Unterstützung standardmäßig inaktiviert.
Die Methode für die Inaktivierung der WS-Addressing-Unterstützung in Servern richtet sich danach, ob Ihre Anwendung
auf JAX-RPC oder JAX-WS basiert.
Informationen zu diesem Vorgang
Sie müssen die WS-Addressing-Unterstützung auch dann nicht aktivieren, wenn Ihre Anwendung
sie nicht erfordert, da die WS-Addressing-Unterstützung in den meisten Fällen keine nachteiligen Auswirkungen auf die Ausführung von Anwendungen hat.
Die Inaktivierung der WS-Addressing-Unterstützung für JAX-RPC-Anwendungen kann risikobehaftet sein, da bei dieser Aktion
auch die Unterstützung für andere Spezifikationen, wie z. B. Web Services Atomic Transactions, inaktiviert wird.
Vorgehensweise
- Inaktivieren Sie die WS-Addressing-Unterstützung für JAX-WS-Service-Provider auf eine der folgenden Arten:
- Verwenden Sie die Annotationen Addressing und SubmissionAddressing
im Service-Code mit dem auf
false gesetzten Parameter enabled, z. B.:
import javax.xml.ws.soap.Addressing;
@Addressing(enabled=false)
@SubmissionAddressing(enabled=false)
@WebService(...)
- Verwenden Sie das Implementierungsdeskriptorelement <webservice-description>/<port-component>/<addressing>
im Implementierungsdeskriptor für die Serviceanwendung, z. B.:
<port-component>
<port-component-name>MyPort1</port-component-name>
<addressing>
<enabled>false</enabled>
</addressing>
<service-impl-bean>
<servlet-link>MyPort1ImplBean</servlet-link>
</service-impl-bean>
</port-component>
- Sie müssen keine Aktionen ausführen, um die WS-Addressing-Unterstützung für
JAX-WS-Clients zu inaktivieren, weil die WS-Addressing-Unterstützung für diese Clients standardmäßig inaktiviert ist.
Auf einer der folgenden Arten können Sie jedoch über das Programm festlegen, dass WS-Addressing inaktiviert wird:
- Verwenden Sie die Klassen AddressingFeature und SubmissionAddressingFeature im Clientcode mit dem auf
false gesetzten Parameter enabled, z. B.:
AddressingFeature feat = new AddressingFeature(false);
SubmissionAddressingFeature feat = new AddressingFeature(false);
- Verwenden Sie die Annotation Addressing für eine injizierte
Web-Service-Proxy-Referenz, z. B.:
public class MyClientApplication {
// Addressing für eine port-component-ref-Ressourceninjektion inaktivieren
@Addressing(enabled=false)
@WebServiceRef(MyService.class)
private MyPortType myPort;
...
}
- Verwenden Sie das Implementierungsdeskriptorelement <service>/<port-component>/<addressing>, z. B.:
<service-ref>
<service-ref-name>service/MyPortComponentRef</service-ref-name>
<service-interface>com.example.MyService</service-ref-interface>
<port-component-ref>
<service-endpoint-interface>com.example.MyPortType</service-endpoint-interface>
<addressing>
<enabled>false</enabled>
</addressing>
</port-component-ref>
</service-ref>
- Zum Inaktivieren der WS-Addressing-Unterstützung für JAX-RPC-Service-Provider oder -clients setzen
Sie die Systemeigenschaft com.ibm.ws.wsaddressingAndDependentsDisabled auf true. Beispiel:
java -Dcom.ibm.ws.wsaddressingAndDependentsDisabled=true ... Anwendungsname
Achtung: Verwenden Sie diese
Eigenschaft mit Sorgfalt, weil Anwendungen
unter Umständen erfordern, dass die Eigenschaften für die Adressierung von WS-Addressing-Nachrichten korrekt funktionieren.
Durch die Definition dieser Eigenschaft wird auch die Unterstützung
für die folgenden Spezifikationen inaktiviert, die von der Unterstützung für WS-Addressing
abhängig sind: Web Services Atomic Transactions, Web Services Business Agreement, Web Services Notification und Web Services Reliable Messaging.
Ergebnisse
Nach Abschluss dieser Task ist die WS-Addressing-Unterstützung inaktiviert. Die Inaktivierung von
WS-Addressing in Clients verhindert, dass WebSphere Application Server
Eigenschaften für die Adressierung von WS-Addressing-Nachrichten im SOAP-Header abgehender Web-Service-Nachrichten sendet.
Durch die zusätzliche Inaktivierung von WS-Addressing in Servern
wird verhindert, dass WebSphere Application
Server WS-Addressing-MAPs in eingehenden SOAP-Headern verarbeitet.