假设我有一项只有一种方法的服务:int generateRandomNumbers()
.
是否可以使用 wsdl2java 生成具有适当异步支持的存根?
例如,生成的类应具有以下方法/消息:
int generateRandomNumbers()
int generateRandomNumbers_Async(callback)
我知道如何使用 wsdl2java 生成带有异步消息的存根。
但是,只有当服务理解异步消息时,这才有效。
我所说的适当的异步支持是指
-
generateRandomNumbers_Async
不是新消息,因为该服务只能理解generateRandomNumbers
, not generateRandomNumbers_Async
-
generateRandomNumbers_Async
= 调用generateRandomNumbers
在不同的线程中,并在以下情况下调用回调generateRandomNumbers
已在幕后完成。
任何想法?
其他 Web 服务框架怎么样?
使用 CXF 时,它的工作原理应该与“第二个”项目符号完全相同。 “generateRandomNumbers”消息在调用线程上发送,因此如果存在 IO 错误或类似错误,则会立即返回。 (根据 jaxws 规范)后台线程将处理响应并调用回调。
使用 wsdl2java 生成代码时,您需要创建一个 jaxws 绑定文件,其中包含以下内容:
<bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
wsdlLocation="hello_world_async.wsdl"
xmlns="http://java.sun.com/xml/ns/jaxws">
<bindings node="wsdl:definitions">
<enableAsyncMapping>true</enableAsyncMapping>
</bindings>
</bindings>
并使用 -B 标志传递它。这将在异步版本的接口上生成一堆新方法。你应该只需要使用这些。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)