NoMethodError: undefined method `add_rpc_operation' for nil:

C

Chris Gunnels

FYI: this is in a Sinatra app. Don't know if that matters though.

NoMethodError: undefined method `add_rpc_operation' for nil:NilClass
from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/soap/rpc/httpserver.rb:95:in
`add_rpc_method_as'
from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/soap/rpc/httpserver.rb:87:in
`add_method'
from ./soap_server/server.rb:8:in `initialize'
from (irb):5:in `new'
from (irb):5

I am running this in irb:

require 'soap/rpc/standaloneServer'
require 'soap_server/server' # includes the SoapServer class
server = SoapServer.new('hws', 'urn:hws', '127.0.0.1', 6565)

SoapServer class looks like this:

require File.dirname(__FILE__) + '/../vendor/gems/environment'
require "soap/rpc/standaloneserver"

begin
class SoapServer < SOAP::RPC::StandaloneServer
# Expose our services
def initialize(*args)
add_method(self, 'add', 'a', 'b')
add_method(self, 'div', 'a', 'b')
end

# Handler methods
def add(a, b)
return a + b
end
def div(a, b)
return a / b
end
end
rescue Exception => e
puts e.message
end
 
C

Chris Gunnels

Ok I figured it out. Smallest change, but got it to work. Seems like
super is creating an object that wasn't being created that the
initialize methods needs to run.

in the SoapServer class you need to add super before adding your
methods. It should look like this.

class SoapServer < SOAP::RPC::StandaloneServer
# Expose our services
def initialize(*args)
super
add_method(self, 'add', 'a', 'b')
add_method(self, 'div', 'a', 'b')
end

# Handler methods
def add(a, b)
return a + b
end
def div(a, b)
return a / b
end
end
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,754
Messages
2,569,527
Members
45,000
Latest member
MurrayKeync

Latest Threads

Top