由于 wsdl 无效,从 wsdl 文件生成代码时出错

Error generating code from wsdl file due to invalid wsdl

提问人:Menyten 提问时间:11/3/2023 最后编辑:Menyten 更新时间:11/5/2023 访问量:63

问:

我目前正在工作,遇到从 wsdl 文件生成 SOAP api 客户端代码的问题。有问题的文件可在此处向公众提供。我特别希望使用的那个称为 GetListingInteraction_1.0_rivtabp20.wsdl。我知道它依赖于其他三个 xsd 文件crm_carelisting_1_0.xsd、GetListing_1_0.xsd ws-addressing-1.0.xsd

我正在使用软件包com.yupzip.wsdl2java

我们将 kotlin 与 java 11 一起使用。

以下是 wsdl2java 的 gradle.build 配置文件的外观:

plugins {
  id 'com.yupzip.wsdl2java' version "$wsdl2java_version"
}


wsdl2java {
wsdlsToGenerate = [
        [
                '-p', 'generated.com.test.microservice.test.resources.models.listing.getlistinginteraction',
                '-wsdlLocation', 'classpath:wsdl/GetListingInteraction_1.0_rivtabp20.wsdl', "$projectDir/src/main/resources/wsdl/GetListingInteraction_1.0_rivtabp20.wsdl"
        ],
]
wsdlDir = file("$projectDir/src/main/resources/wsdl")
cxfVersion = "3.5.5"
cxfPluginVersion = "3.5.5"

}

我们得到的错误。

无法在方法 [getListing] 中为部件 [logicalAddress] 创建 java 参数 - 此 wsdl 无效,请使用 wsdlvalidator 工具验证此 wsdl

我已经浏览了 wsdl 文件、验证、格式化等,但对我来说一切看起来都还不错。总的来说,我对 SOAP 和 WSDL 不是很有经验,我有点不知所措。我们还有另一个服务,它能够在系统的另一部分为另一个 SOAP API 生成具有完全相同设置的客户端代码。使用相同版本的 wsdl2java 依赖项以及配置,只是 wsdlsToGenerate 中的其他 wsdl 文件。

有人会好心地尝试自己复制它,看看你是否遇到同样的问题吗?如果您找到解决方案,我将不胜感激。

如果您需要更多信息,请告诉我。

我在这里的一个小项目中复制了它 https://github.com/Menyten/wsdltest

java kotlin soap wsdl wsdl2java

评论

0赞 Jorn 11/3/2023
您说您已经“浏览了 wsdl 文件”,但您是否真的像错误消息所说的那样使用 wsdlvalidator 工具来验证该文件?据推测,该工具会确切地告诉您出了什么问题。
0赞 Menyten 11/3/2023
好吧,不,因为我不知道如何使用它。据说我应该能够使用我的 IDE 进行验证,这就是我所做的,右键单击文件并在 intellij 中选择 Validate
0赞 Menyten 11/3/2023
我们运行了 wsdlvalidator,它通过了验证。所以 wsdl 文件显然没有问题
0赞 Menyten 11/5/2023
我想通了这个问题。显然,我需要一些额外的论据才能让这一代人发挥作用。我查看了原始项目的 pom.xml 文件,并在相关文件的 wsdlOptions 下看到了额外的参数

答:

-1赞 Menyten 11/5/2023 #1

我想通了这个问题。显然,我需要一些额外的论据才能让这一代人发挥作用。我查看了原始项目的 pom.xml 文件,并在相关文件的 wsdlOptions 下看到了额外的参数