在WSDL 1.1规范中,我们有4种操作类型:
使用Apache CXF V3.2.0,我尝试从现有的WSDL生成客户端(wsdl2java),我们只有" wsdl:output" in" wsdl:operation" :
<wsdl:operation name="NotifyMe">
<wsdl:output action="myPort/NotifyMe" message="tns:myPort_NotifyMe_Output" />
</wsdl:operation>
我在构建期间遇到此错误:
[ERROR] Failed to execute goal org.apache.cxf:cxf-codegen-plugin:3.2.0:wsdl2java (generate-sources) on project soap-callback: Execution generate-sources of goal org.apache.cxf:cxf-codegen-plugin:3.2.0:wsdl2java failed:
[ERROR] Summary: Failures: 1, Warnings: 0
[ERROR]
[ERROR] <<< ERROR!
[ERROR] Invalid WSDL, Operation NotifyMe in PortType {myPort} not request-response or one-way
我如何解决此错误并从此WSDL生成Client类? Apache CXF支持It Notification Operations?
答案 0 :(得分:1)
尽管WSDL 1.1规范定义了4种类型的操作类型,但是WSDL定义已根据WS-I基本概要文件中定义的规则进行了验证。
WS-I基本配置文件-规则R2303对请求响应和通知有限制。
这是来自其他实用程序(MS的wsdl.exe)的不同错误消息,它更全面地解释了同一件事
警告:此Web参考不符合WS-I Basic Profile v1.1。 R2303:描述绝对不能在wsdl:portType定义中使用Solicit-Response和Notification类型操作。 WSDL 1.1没有很好地定义请求响应和通知操作。此外,WSDL 1.1并未为其定义绑定。