Web Service 寻址 (WS-Addressing) 支持提供用来对 Web Service 寻址并在消息中提供寻址信息的机制。缺省情况下,在客户机上禁用 WS-Addressing 支持。
在服务器上禁用 WS-Addressing 支持的方法取决于应用程序是基于 JAX-RPC 还是 JAX-WS。
关于此任务
即使您的应用程序不需要 WS-Addressing 支持,您也无需将其禁用,因为在大多数情况下,WS-Addressing 支持对应用程序的运行没有负面影响。
对于 JAX-RPC 应用程序,禁用 WS-Addressing 支持可能有一定的风险,因为此操作也会禁用也对其他规范(例如,Web Services 原子事务)的支持。
过程
- 使用以下方式之一来禁用对 JAX-WS 服务提供程序的 WS-Addressing 支持:
- 将服务代码中的 Addressing 和 SubmissionAddressing 注解与设置为 false 的 enabled 参数一起使用;例如:
import javax.xml.ws.soap.Addressing;
@Addressing(enabled=false)
@SubmissionAddressing(enabled=false)
@WebService(...)
- 将部署描述符中的 <webservice-description>/<port-component>/<addressing> 部署描述符元素用于服务应用程序;例如:
<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>
- 对于 JAX-WS 客户机,您不必采取任何操作来禁用 WS-Addressing 支持,因为缺省情况下禁用 WS-Addressing 支持。但是,您可以使用以下方式之一以编程方式指定 WS-Addressing 已禁用:
- 将客户机代码中的 AddressingFeature 和 SubmissionAddressingFeature 类与设置为 false 的 enabled 参数一起使用;例如:
AddressingFeature feat = new AddressingFeature(false);
SubmissionAddressingFeature feat = new AddressingFeature(false);
- 将 Addressing 注解用于注入的 Web service 代理参考;例如:
public class MyClientApplication {
// Disable Addressing for a port-component-ref resource injection.
@Addressing(enabled=false)
@WebServiceRef(MyService.class)
private MyPortType myPort;
...
}
- 使用 <service>/<port-component>/<addressing> 部署描述符;例如:
<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>
- 要为 JAX-RPC 服务提供程序或客户机禁用 WS-Addressing 支持,请将 com.ibm.ws.wsaddressingAndDependentsDisabled 系统属性设置为 true。 例如:
java -Dcom.ibm.ws.wsaddressingAndDependentsDisabled=true ... application_name
注意: 因为应用程序可能需要 WS-Addressing 消息寻址属性才能正常工作,所以使用此属性时要小心。设置此属性还会禁用对以下规范的支持,这取决于 WS-Addressing 支持:Web Service 原子事务、Web Service 业务协议、Web Service 通知和 Web Service 可靠消息传递。
结果
通过完成此任务,禁用了 WS-Addressing 支持。
在客户机上禁用 WS-Addressing 将阻止 WebSphere® Application
Server 在出站 Web Service 消息的 SOAP 头中发送 WS-Addressing 消息寻址属性。在服务器上禁用 WS-Addressing 还会阻止 WebSphere Application
Server 处理入局 SOAP 头中的 WS-Addressing MAP。