微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Web服务 – Elixir使用洗涤剂和洗涤剂调用Axis2 Java SOAP Web服务

从Elixir,我试图用 detergentex调用一个SOAP Web Service,它是Erlang库 detergent一个包装器.

我可以在洗衣机主页的示例中调用SOAP Web Service,没有任何问题: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 Service时,我遇到了一些问题.示例: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

我建议添加一个空的前缀.

原文地址:https://www.jb51.cc/html/230389.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐