我的问题可能首先似乎有重复,但我遇到了让我感到惊讶的事情。 Yaws Webserver
附带了一个完整的SOAP示例,但是当我尝试按原样运行时,这就是我得到的:
在文本形式中,这是我在shell中看到的:
1> inets:start(). ok 2> yaws_soap_lib:call("http://www.webservicex.net/WeatherForecast.asmx?WSDL","GetWeatherByPlaceName",["Boston"]).
=ERROR REPORT==== 15-Apr-2013::20:32:11 === Call to tuple fun {erlsom_parse,xml2StructCallback}. Tuple funs are deprecated and will be removed in R16. Use "fun M:F/A" instead, for example "fun erlsom_parse:xml2StructCallback/2". (This warning will only be shown the first time a tuple fun is called.) {error,{decoding,"Malformed: Illegal character in prolog"}}
3> yaws_soap_lib:call("http://www.webservicex.net/WeatherForecast.asmx?WSDL","GetWeatherByPlaceName",["Boston"]). {error,{decoding,"Malformed: Illegal character in prolog"}} 4>
erlsom
的依赖,我非常认为XML解析。但是,我很难单凭erlsom
提供肥皂服务。
答案 0 :(得分:3)
这是一个丑陋的黑客,但这是我处理SOAP请求的方式:
编写一个包含以下内容的函数/模块:
答案 1 :(得分:1)
从官方documentation我们可以阅读以下内容:
Tuple funs(具有模块名称和功能的双元素元组)是 现已正式弃用,将在R16中删除。使用'有趣的M:F / A' 代替。
所以,雅虎应该更新。作为一种解决方法,您至少有两个选择: