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/api/RPC2"
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.asmx?WSDL"
#~ 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