我正在尝试在rhosync application.rb中调用Web服务,我在rhosync控制台中看到500错误响应..并且'服务器在BB模拟器中返回错误'.. :(
有关我的设置的一些信息 -
我创建了一个rhodes应用程序,当用户输入用户名和密码并点击“登录”时,该应用程序连接到rhosync应用程序。我通过rhosync应用程序的application.rb的“authenticate”方法调用此web服务..
def authenticate(username,password,session)
Rho::AsyncHttp.get(:url => 'http://mywebserviceURL',:callback => (url_for :action => :httpget_callback),:callback_param => "" )
end
而不是http:async,我尝试使用基于肥皂的web服务,它工作得很好..这里是代码,如果有人在这里搜索样本..在rhosync app的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)
答案 0 :(得分:0)
如果您启动日志,通常可以找到问题。在您的应用中编辑rhoconfig.txt 设置这些属性 -
# Rhodes runtime properties
MinSeverity = 1
LogToOutput = 1
LogCategories = *
ExcludeLogCategories =
然后再试一次,观察终端输出。随意发回日志,我会看一看。 如果你将mywebserviceURL用作变量,你也可能想要回显出mywebserviceURL,我相信你刚刚在这里更改了帖子。如果用浏览器点击它,你可以访问网络服务吗?
答案 1 :(得分:0)
需要“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)
在add_method和authenticate方法中执行的操作以及写入的位置。