由于名称冲突,SBT WSDL无法编译SOAP客户端.我应该怎么办



让我解释一下事情开头。我们正在尝试通过此URL使用SOAP API服务:

http://onepointdemo.myfarebox.com/v2/onepoint.svc?singlewsdl

我们尝试将其与SBT WSDL进行编译,没有添加选项。它失败了。这是错误的样子

[error] /Users/catfly/our-project/target/scala-2.11/wsdl/main/sources/org/datacontract/schemas/_2004/_07/mystifly/ArrayOfEticket.java:35: ArrayOfEticket is already defined as object ArrayOfEticket
[error] public class ArrayOfEticket {
[error]              ^
[error] /Users/catfly/our-project/target/scala-2.11/wsdl/main/sources/org/datacontract/schemas/_2004/_07/mystifly/Eticket.java:36: Eticket is already defined as object Eticket
[error] public class Eticket {
[error]              ^
[error] two errors found
[error] (compile:compileIncremental) Compilation failed
[error] Total time: 19 s, completed Feb 26, 2018 6:03:43 PM

我们挖掘上面的WSDL文件,确实发现同一模式中有ETicketEticket,以及ArrayOfETicketArrayOfEticket。这应该足以使编译器尖叫。

我的问题是,有解决方法吗?还是我应该要求我们的服务提供商解决命名问题?谢谢!

我通过在下面添加sbt-wsdl编译选项为build.sbt解决了这个问题,然后再次编译服务。

WsdlKeys.wsdlToCodeArgs += "-autoNameResolution"

最新更新