web-services - Elixir用洗涤剂和洗涤剂调用Axis2 Java SOAP Web服务

标签 web-services soap wsdl erlang elixir

从Elixir,我尝试使用detergentex调用SOAP Web服务,该服务是Erlang库detergent的包装。

我可以在洗涤剂主页上的示例中毫无问题地调用SOAP Web服务:http://www.webservicex.net/convertVolume.asmx?WSDL

参数:

wsdl_url = "http://www.webservicex.net/convertVolume.asmx?WSDL"
action = "ChangeVolumeUnit"
parameters = ["100","dry","centiliter"]


但是,当尝试调用Axis2 Java SOAP Web服务时,我遇到了一些问题。示例:http://www.thomas-bayer.com/axis2/services/BLZService?wsdl

通过以下方式调用“ getBank”时

wsdl_url = "http://www.thomas-bayer.com/axis2/services/BLZService?wsdl"
action = "getBank"
parameters = ["abc"]
wsdl = Detergentex.init_model(wsdl_url)
res = Detergentex.call(wsdl, action, parameters)


我收到以下错误消息:

{:error, 'Struct doesn\'t match model: recordtype not expected: p:getBank'}


具有以下堆栈跟踪

    src/erlsom_write.erl:357: :erlsom_write.findAlternative/4
    src/erlsom_write.erl:258: :erlsom_write.processSubType/5
    src/erlsom_write.erl:241: :erlsom_write.processElementValues/7
    src/erlsom_write.erl:132: :erlsom_write.struct2xml/6
    src/erlsom_write.erl:323: :erlsom_write.processAlternativeValue/8
    src/erlsom_write.erl:241: :erlsom_write.processElementValues/7
    src/erlsom_write.erl:116: :erlsom_write.struct2xml/6
    src/erlsom_write.erl:323: :erlsom_write.processAlternativeValue/8
    src/erlsom_write.erl:241: :erlsom_write.processElementValues/7
    src/erlsom_write.erl:45: :erlsom_write.write/2
    src/detergent.erl:211: :detergent.call_attach/8


关于我在做什么错的任何建议吗?

最佳答案

根据实现,在init_model上添加前缀。

def init_model(wsdl_url, prefix \\ 'p') do
   Detergentex.Client.init_model(wsdl_url, prefix)
end


我建议添加一个空前缀。

关于web-services - Elixir用洗涤剂和洗涤剂调用Axis2 Java SOAP Web服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33135605/

相关文章:

delphi - WSDL 导入器生成有故障的服务器

java - 在 web 服务中找不到类异常 Class.forName ("com.mysql.jdbc.Driver")

java - 同步Web服务方法有意义吗?

node.js - Node -RED + DB2 - 消息 : string[18] "No response object"

php - 为 SOAP 请求创建特定信封

PHP SoapClient 不处理 WSDL 中的抽象和替换组属性

python - suds:TypeNotFound:未找到 WSDL 中定义的类型的类型

c# - body 参数 'width' 。 GET 操作不能有主体?

java - Oracle Web 服务日期在 Java 代码中返回 Null,但在 SOAP UI 中不返回 Null

java - 发生故障时 Oracle Service Bus 回显 Soap 请求