# Soap4r e mod\_ruby

**URL:** <https://www.ruby-forum.com/t/soap4r-e-mod-ruby/174015>\
**Category:** IT\
**Created:** [August 19, 2009, 2:34pm UTC](https://www.ruby-forum.com/t/soap4r-e-mod-ruby/174015 "2009-08-19T14:34:44Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![stanley](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/7ab992/32.png) [@stanley](https://www.ruby-forum.com/u/stanley)\
**Post date:** [August 19, 2009, 2:34pm UTC](https://www.ruby-forum.com/t/soap4r-e-mod-ruby/174015/1 "2009-08-19T14:34:44Z")

</div>

Salve a tutti, sto cercando ( da un po’ ormai ) di capire come  
realizzare un servizio soap che possa girare su apache con mod\_ruby  
In rete la totalitÃ degli esempi riguarda server standalone

# server.rbx

require ‘soap/rpc/cgistub’

class CalcServer \< SOAP::RPC::CGIStub

def on\_init  
add\_method( self, ‘add’, ‘lhs’, ‘rhs’ )  
end

end

def add( lhs, rhs )  
rhs + lhs  
end

name = “CalcServer”

status = CalcServer.new( name, ‘urn:ruby:calculation’ ).start  
##################################################################

#client.rb #############################################################  
require ‘soap/rpc/driver’

server = ‘[http://localhost/server.rbx](http://localhost/server.rbx)’  
uri = ‘urn:ruby:calculation’

calc = SOAP::RPC::Driver.new(server, uri )  
calc.wiredump\_dev = STDERR if $DEBUG

calc.add\_method( ‘add’, ‘lhs’, ‘rhs’ )

puts ‘add: 1 + 2 # =\> 3’  
puts calc.add(1, 2)  
##########################################################################

# Errore:

################################################################  
SecurityError: Insecure: can’t intern tainted string  
from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:210:in `const_defined?' from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:210:in `const\_from\_name’  
from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:202:in `each' from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:202:in `const\_from\_name’  
from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:221:in  
`class_from_name' from /usr/lib/ruby/1.8/soap/mapping/rubytypeFactory.rb:424:in `unknownstruct2obj’  
from /usr/lib/ruby/1.8/soap/mapping/rubytypeFactory.rb:405:in  
`unknowntype2obj' from /usr/lib/ruby/1.8/soap/mapping/rubytypeFactory.rb:251:in `soap2obj’  
from /usr/lib/ruby/1.8/soap/mapping/registry.rb:479:in `_soap2obj' from /usr/lib/ruby/1.8/soap/mapping/registry.rb:428:in `soap2obj’  
from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:146:in `_soap2obj' from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:59:in `soap2obj’  
from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:360:in  
`protect_threadvars' from /usr/lib/ruby/1.8/soap/mapping/mapping.rb:55:in `soap2obj’  
from /usr/lib/ruby/1.8/soap/rpc/router.rb:434:in `request_rpc_enc' from /usr/lib/ruby/1.8/soap/rpc/router.rb:418:in `request\_rpc’  
from /usr/lib/ruby/1.8/soap/rpc/router.rb:391:in `call' from /usr/lib/ruby/1.8/soap/rpc/router.rb:168:in `route’  
from /usr/lib/ruby/1.8/soap/rpc/soaplet.rb:88:in `do_POST' from /usr/lib/ruby/1.8/soap/rpc/cgistub.rb:170:in `run’  
from /usr/lib/ruby/1.8/logger.rb:659:in `start' from /home/onip/public_html/server.rbx:18 from /usr/lib/ruby/1.8/apache/ruby-run.rb:53:in `load’  
from /usr/lib/ruby/1.8/apache/ruby-run.rb:53:in `handler' from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:354:in `raise\_fault’  
from /usr/lib/ruby/1.8/soap/rpc/proxy.rb:147:in `call' from /usr/lib/ruby/1.8/soap/rpc/driver.rb:178:in `call’  
from /usr/lib/ruby/1.8/soap/rpc/driver.rb:232:in `add’  
###########################################################################

Attualmente sto utilizzando ruby-1.8.6\_p369, mod\_ruby-1.2.6 e le  
librerie soap4r incluse nella distribuzione di ruby (ho provato anche a  
sostituire i file con la nuova versione della libreria, ma l’errore  
rimane)

Grazie a tutti per l’aiuto
