Forum: Ruby on Rails webservice problem (cant make client)

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Brutyn N. (Guest)
on 2006-01-31 15:06
(Received via mailing list)
hey, i have made a webservice
http://twodecode.pilot.localhost.be:3000/backend/wsdl
here i can see the wsdl file

i have a method string Authenticate(string twa, string login, string
pass)
when i do /invoke i can test it, this all works

backend_api.rb
class BackendApi < ActionWebService::API::Base
  api_method 	:authenticate,
  	:expects => [{:twa =>:string},{:login =>:string},{:pass =>:string}],
  	:returns => [{:responsecode =>:string}]
end

backend_controller.rb
class BackendController < ApplicationController
  wsdl_service_name 'Backend'
	web_service_api BackendApi
	web_service_scaffold :invoke

	# Constants
	TWA_INVALID 				= "TWA_INVALID"
	USER_NOT_FOUND				= "USER_NOT_FOUND"
	USER_FOUND				= "USER_FOUND"

	def authenticate(twa, login, pass)
		user = User.authenticate(login,  pass)
		if user == nil then
			return USER_NOT_FOUND
  		else
  			return USER_FOUND
  		end
	end
end



Authenticate('xxx','test','test') => returns "USER_NOT_FOUND"
Authenticate('xxx','test','testpass')  => returns "USER_FOUND"

No i want to write a client as a standalone program but he always get
parse
error xml, i have tried mutiple options, here are they, with an error
description above it

Anyone can help me get the right method....


require 'action_web_service'
require 'soap/rpc/driver'
require 'uri'
require 'soap/wsdlDriver'
require "xmlrpc/client"

# Initialize the SOAP driver
wsdl = "http://twodecode.pilot.localhost.be:3000/backend/wsdl"
wsdl2 = "http://twodecode.pilot.localhost.be:3000/backend/a...
ns = "urn:ActionWebService"

#xml parser error
#~ proxy = SOAP::RPC::Driver.new(wsdl, 'urn:ActionWebService')
#~ proxy.add_method('Authenticate', 'twa', 'login', 'pass')
#~ result = proxy.Authenticate('xxx', 'test','test')

#xml parser error
#~ @drv = SOAP::RPC::Driver.new(wsdl, 'urn:ActionWebService')
#~ @drv.add_rpc_method_with_soapaction('Authenticate',
'urn:ActionWebService#Authenticate', 'twa', 'login', 'pass')
#~ result = @drv.Authenticate('xxx', 'test','test')

#xml parser error
#~ drv = SOAP::RPC::Driver.new(wsdl,'urn:ActionWebService')
#~ drv.add_method_with_soapaction("Authenticate", 'urn:ActionWebService'
+
"/#Authenticate", 'twa', 'login', 'pass')
#~ @result = drv.Authenticate('xxx','test','test')

#post not supported,xml parser error
#~ wiredump_dev=STDERR
#~ service = SOAP::RPC::Driver.new(wsdl, ns)
#~ service.wiredump_dev=wiredump_dev
#~ service.add_method_with_soapaction("Authenticate", ns +
"/Authenticate",
'twa', 'login', 'pass')
#~ @result = service.Authenticate('xxx','test','test')

#undefined method Authenticate
#wsdl = "http://localhost/Twodecode.Webservices/Webservices...
#~ factory = SOAP::WSDLDriverFactory.new(wsdl)
#~ @driver = factory.createDriver
#~ result = @driver.Authenticate('xxx','test','test')

#undefined mehtod create_rpc_driver
#~ drv = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
#~ drv.wiredump_dev = STDOUT
#~ dwml = drv.Authenticate('xxx','test','test')

#uninitialized constant ActionWebService
#~ soap_client = ActionWebService::Client::Soap.new('BackendApi', wsdl2)
#~ result = soap_client.Authenticate('xxx','test','test')

Thanks in advance
Nick
This topic is locked and can not be replied to.