El soporte de Web Services Addressing (WS-Addressing) ofrece mecanismos para direccionar los servicios web y proporciona información de direccionamiento en los mensajes. El soporte de WS-Addressing está inhabilitado de forma predeterminada en los
clientes.
El método para inhabilitar el soporte de WS-Addressing
en servidores depende de si su aplicación está basada en JAX-RPC
o JAX-WS.
Acerca de esta tarea
No es necesario inhabilitar el soporte de WS-Addressing incluso si aplicación no lo necesita,
ya que en la mayoría de los casos, el soporte WS-Addressing no tiene un impacto negativo en las aplicaciones
en ejecución.
Para aplicaciones JAX-RPC, inhabilitar el soporte
WS-Addressing puede ser arriesgado ya que así se inhabilita también el soporte para otras
especificaciones como Web Services Atomic Transactions.
Procedimiento
- Inhabilite el soporte de WS-Addressing para proveedores de servicio JAX-WS utilizando una de las maneras siguientes:
- Utilice las anotaciones Addressing y SubmissionAddressing en el servicio web,
con el parámetro enabled establecido en false;
por ejemplo:
import javax.xml.ws.soap.Addressing;
@Addressing(enabled=false)
@SubmissionAddressing(enabled=false)
@WebService(...)
- Utilice el elemento del descriptor de despliegue <webservice-description>/<port-component>/<addressing> en el descriptor de despliegue de la aplicación de servicio; por ejemplo:
<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>
- No tiene que realizar acción alguna para inhabilitar el soporte WS-Addressing
para clientes JAX-WS, ya que el soporte WS-Addressing está inhabilitado de forma predeterminada. Sin embargo, puede especificar la inhabilitación de WS-Addressing
mediante programación utilizando una de las formas siguientes:
- Utilice los códigos AddressingFeature y SubmissionAddressingFeature en el código del cliente, con el parámetro enabled establecido en false; por ejemplo:
AddressingFeature feat = new AddressingFeature(false);
SubmissionAddressingFeature feat = new AddressingFeature(false);
- Utilice la anotación Addressing para una referencia de proxy de servicios web inyectada; por ejemplo:
public class MyClientApplication {
// Inhabilitar direccionamiento para una inyección de recursos port-component-ref.
@Addressing(enabled=false)
@WebServiceRef(MyService.class)
private MyPortType myPort;
...
}
- Utilice el descriptor de despliegue <service>/<port-component>/<addressing>; por ejemplo:
<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>
- Para inhabilitar el soporte WS-Addressing para los proveedores o clientes de servicios
JAX-RPC, establezca la propiedad del sistema com.ibm.ws.wsaddressingAndDependentsDisabled
en true. Por
ejemplo:
java -Dcom.ibm.ws.wsaddressingAndDependentsDisabled=true ... nombre_aplicación
Atención: Utilice esta propiedad con atención debido a que las aplicaciones requieren las propiedades de direccionamiento de mensajes de WS-Addressing para funcionar correctamente. Al establecer esta propiedad también se inhabilita el soporte de para las siguientes especificaciones, que dependen del soporte de WS-Addressing: Web Services Atomic Transactions, Web Services Business Agreement, Web Services Notification y Web Services Reliable Messaging.
Resultados
Al completar esta tarea, inhabilitará el soporte WS-Addressing.
Inhabilitar WS-Addressing en clientes impide que WebSphere Application Server envíe propiedades de direccionamiento de mensajes de WS-Addressing en la cabecera SOAP de los mensajes de
servicio web de salida. La inhabilitación de WS-Addressing en servidores además impide que
WebSphere Application
Server procese las MAP de WS-Addressing en las cabecera SOAP de entrada.