使用 enableTransactionalOneWay 属性来确保使用业界标准的 SOAP over JMS 传输的单向和双向异步 Web Service 请求将以事务方式发送到目标队列或主题。
关于此任务
使用 JMS 传输 Java™ API for XML Web Services (JAX-WS) 或 Java API
for XML-based RPC (JAX-RPC) web service 请求时,缺省行为是 SOAP 消息以非事务方式或在客户机应用程序的事务的外部添加到目标队列或主题。
将 SOAP 消息添加到目标队列或主题将在事务外部完成,以避免使用双向同步 web service 请求时可能发生的同步问题。但是,可以选择使单向和双向异步请求作为事务的一部分进行处理。可以使用 enableTransactionalOneWay 属性来确保使用 JMS 传输的单向和双向异步 Web Service 请求将以事务方式发送到目标队列或主题。客户机应用程序调用 web service 请求时,生成的 SOAP 请求消息将作为客户机应用程序的事务的一部分添加到目标队列或主题。
使用下列其中一种方法来启用
enableTransactionalOneWay 属性。
过程
- 程序化地设置 enableTransactionalOneWay 属性。 该属性的值是 Boolean。
- 对于 JAX-WS 客户机,在客户机 JAX-WS RequestContext 对象上设置此属性。
例如:
((BindingProvider) port).getRequestContext().put
(com.ibm.websphere.webservices.Constants.ENABLE_TRAN_ONEWAY,
new Boolean(true));
- 对于 JAX-RPC 客户机,在客户机 JAX-RPC Stub 或 Call 对象上设置属性。例如:
stub._setProperty(com.ibm.websphere.webservices.Constants.ENABLE_TRAN_ONEWAY,
new Boolean(true));
- 对于 JAX-RPC 客户机,通过使用 wsadmin 命令在 ibm-webservicesclient-bnd.xmi 部署描述符文件中将 enableTransactionalOneWay 属性设置为定制属性。
有关 wsadmin 工具选项的更多信息,请参阅 AdminApp 对象 install、installInteractive、edit、editInteractive、update 和 updateInteractive 命令的选项信息。
将 $AdminApp 对象与
-WebServicesClientCustomProperty 选项配合使用,以在客户机绑定文件
ibm-webservicesclient-bnd.xmi 中设置该属性的值。定制属性 enableTransactionalOneWay 的值是 True 或 False。
- 使用 Jacl:
$AdminApp edit MyApplication {-WebServicesClientCustomProperty
{{MyEJBJar.jar MyEJB service/MyServiceRef MyPort enableTransactionalOneWay
true}}}
- 使用 Jython:
AdminApp.edit('MyApplication', ['-WebServicesClientCustomProperty',
[['MyEJBJar.jar', 'MyEJB', 'service/MyServiceRef ', 'MyPort', 'enableTransactionalOneWay',
'true']]])
结果
您已经有配置为使用 JMS 传输时以事务方式调用单向和双向异步请求的 Web service 客户机应用程序。
下一步做什么
启用
enableTransactionalOneWay 属性后,运行客户机应用程序。