【问题标题】:Using WSDL With Ruby在 Ruby 中使用 WSDL
【发布时间】:2011-03-23 13:02:22
【问题描述】:

我收到此错误:

WSDL::XMLSchema::Parser::UnknownElementError

unknown element: {}HTML
at 'new' 

当我使用 Ruby 使用 Web 服务时。这是代码sn-p:

require 'soap/wsdlDriver'

wsdl = url
driver = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
driver.options["protocol.http.basic_auth"] << [url, user_name, password]

url 指向格式良好的 xml。

有什么解决办法吗?

【问题讨论】:

    标签: ruby soap wsdl


    【解决方案1】:

    你能分享wsdl 文件吗?也许这会帮助我们更好地回答它。
    无论如何,我建议首先使用wsdl2ruby 生成驱动程序类。然后将它们加载到您的 Ruby 文件中(通过require)。示例(来自手册页):

    # For server side:
    $ wsdl2ruby.rb --wsdl myapp.wsdl --type server
    # For client side:
    $ wsdl2ruby.rb --wsdl myapp.wsdl --type client
    

    【讨论】:

    【解决方案2】:

    如果您在网络浏览器中加载 URL,它会被重定向到不同的位置吗?

    根据我的经验,出现“未知元素:{}HTML”错误的原因之一是 WSDL 解析器试图解析 HTTP 重定向的 HTML 部分,但未能成功。因此,您应该自己处理重定向(在代码中或手动)并将最终 URL 提供给 WSDL 驱动程序。

    【讨论】:

    • 刚好有这个。一些使用 http SOAP 服务的旧代码开始失败,因为该服务试图重定向到一个新的 https-only URL
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多