0

我正在尝试在 rhosync application.rb 中调用 Web 服务,我在 rhosync 控制台中看到 500 错误响应 .. 并且 BB 模拟器中的“服务器返回错误”.. :(

关于我的设置的一些信息 -

我创建了一个 rhodes 应用程序,当用户输入用户名和密码并单击“登录”时,该应用程序连接到 rhosync 应用程序。我通过 rhosync 应用程序的 application.rb 的“身份验证”方法调用此 Web 服务..

def authenticate(username,password,session)
    Rho::AsyncHttp.get(:url => 'http://mywebserviceURL',:callback => (url_for :action => :httpget_callback),:callback_param => "" )
end

更新

我尝试使用基于soap的Web服务而不是http:async,它工作得很好..如果有人在这里寻找示例,这里是代码..在rhosync应用程序的application.rb中

  require "soap/rpc/driver"


        class Application < Rhosync::Base
          class << self
           def authenticate(username,password,session)
              driver = SOAP::RPC::Driver.new('http://webserviceurl')
              driver.add_method('authenticate', 'username', 'password')
              ret=driver.authenticate(username,password)
              if ret=="Success" then
            true
              else
                false
              end
            end
        end

        Application.initializer(ROOT_PATH)
4

2 回答 2

0

如果您打开日志,通常可以发现问题。在您的应用程序中编辑 rhoconfig.txt 设置这些属性 -

# Rhodes runtime properties
MinSeverity  = 1
LogToOutput = 1
LogCategories = *
ExcludeLogCategories =

然后再试一次并观察终端输出。随时将日志发布回来,我会看看。如果您将 mywebserviceURL 用作变量,您可能还想回显它,我相信您只是为这里的帖子更改了它。如果你用浏览器点击它,你能访问网络服务吗?

于 2011-02-08T20:28:15.380 回答
0

需要“soap/rpc/驱动程序”

    class Application < Rhosync::Base
      class << self
       def authenticate(username,password,session)
          driver = SOAP::RPC::Driver.new('http://webserviceurl')
          driver.add_method('authenticate', 'username', 'password')
          ret=driver.authenticate(username,password)
          if ret=="Success" then
        true
          else
            false
          end
        end
    end

    Application.initializer(ROOT_PATH)

在这个 add_method 和 authenticate 方法中做了什么以及在哪里写。

于 2011-04-26T06:00:00.973 回答