Soap and Http-access problem

Hi,

I’m working on an application where some of the business logic is
accessible with SOAP. I’ve used SOAP4R to generate everything and it
works splendid (I use http-access2 since we require https). Anyway, a
week ago, this stopped working, for no reason I can figure out. But it
just stopped working on my dev machine, not on our production_test
server or anything. I’m sitting on Windows 2003, and the stack trace
looks like this:
Bad file descriptor - connect(2) (, #0)
d:/programming/ruby/lib/ruby/site_ruby/1.8/http-access2.rb:1391:in
initialize' d:/programming/ruby/lib/ruby/site_ruby/1.8/http-access2.rb:1391:increate_socket’
d:/programming/ruby/lib/ruby/site_ruby/1.8/http-access2.rb:1352:in
connect' d:/programming/ruby/lib/ruby/1.8/timeout.rb:56:intimeout’
d:/programming/ruby/lib/ruby/1.8/timeout.rb:76:in timeout' d:/programming/ruby/lib/ruby/site_ruby/1.8/http-access2.rb:1351:inconnect’
d:/programming/ruby/lib/ruby/site_ruby/1.8/http-access2.rb:1209:in
query' d:/programming/ruby/lib/ruby/site_ruby/1.8/http-access2.rb:892:inquery’
d:/programming/ruby/lib/ruby/site_ruby/1.8/http-access2.rb:434:in
do_get_block' d:/programming/ruby/lib/ruby/site_ruby/1.8/http-access2.rb:370:inconn_request’
d:/programming/ruby/lib/ruby/site_ruby/1.8/http-access2.rb:285:in
request' d:/programming/ruby/lib/ruby/site_ruby/1.8/http-access2.rb:264:inpost’
d:/programming/ruby/lib/ruby/1.8/soap/streamHandler.rb:170:in
send_post' d:/programming/ruby/lib/ruby/1.8/soap/streamHandler.rb:109:inold_send’
#{RAILS_ROOT}/vendor/lpw/lpw.rb:11:in send' d:/programming/ruby/lib/ruby/1.8/soap/rpc/proxy.rb:170:inroute’
d:/programming/ruby/lib/ruby/1.8/soap/rpc/proxy.rb:141:in call' d:/programming/ruby/lib/ruby/1.8/soap/rpc/driver.rb:178:incall’
d:/programming/ruby/lib/ruby/1.8/soap/rpc/driver.rb:232:in getUserData' #{RAILS_ROOT}/app/models/address_information.rb:25:infetch’
#{RAILS_ROOT}/app/models/lpw_object.rb:23:in fetch' #{RAILS_ROOT}/app/controllers/lpw_controller.rb:110:inaddr’
d:/Programming/Ruby/bin/mongrel_rails:18

I would be very thankful for any help coming to terms with this.

Regards

Ola B. (http://ola-bini.blogspot.com)
JvYAML, RbYAML, JRuby and Jatha contributor
System Developer, Karolinska Institutet (http://www.ki.se)
OLogix Consulting (http://www.ologix.com)

“Yields falsehood when quined” yields falsehood when quined.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

Ola B. wrote:

I’m working on an application where some of the business logic is
accessible with SOAP. I’ve used SOAP4R to generate everything and it
works splendid (I use http-access2 since we require https). Anyway, a
week ago, this stopped working, for no reason I can figure out. But it
just stopped working on my dev machine, not on our production_test
server or anything. I’m sitting on Windows 2003, and the stack trace
looks like this:
Bad file descriptor - connect(2) (, #0)

Hmm. Trying to execute TCPSocket.new(nil, 0) here. Endpoint URL is
broken somewhere.

d:/programming/ruby/lib/ruby/1.8/soap/streamHandler.rb:109:in `old_send’

Do you know what’s ‘old_send’ here? What version of soap4r are you
using?

Regards,
// NaHi

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)

iQEVAwUBRNdBkx9L2jg5EEGlAQInAAgAgSFBr8QwCzfFcGt3dnw6AMxmR8ZD1rrO
YeulWIbP9JrefwfilpB7uDsJY9FuVW5bxpcB24ToDp3gkyKJhLnY5lA3Uvcy543i
LfDVZbkAbhCE7W3tifyOtb0vRuSmE3p3KwEE91aTyRSpMsml2uRKDyIFU1zkmxju
pHd0sy91gr7pMJDa9R4Ls2zCmnd8HugpsOUWysPVgFwq/Qbak4hMclKBM0TcoQmd
0QexWaWV3KL79XZHz75FKjtqq5itVqS6ltmtMRzkCCSHfMjU53bEby4MfSKahPjv
QqU0vG/HO7BaUTKymeeULGkZU/+yaAvKFq42/xW5LkLogV0mWHZc9w==
=9Zqw
-----END PGP SIGNATURE-----

NAKAMURA, Hiroshi wrote:

Regards,
// NaHi

Hi,

I’m using Soap4R 1.5.5. Regarding the old_send, that’s the result of
monkey_patching, since I add some big problems with another thing. Hmm.
old_send is just send renamed. But this shouldn’t be the problem, it
works on another machine and has worked on this machine. The monkey
patching looks like this:

module SOAP
class HTTPStreamHandler
alias :old_send :send
def send(endpoint_url, conn_data, soapaction = nil, charset =
@charset)
ret = old_send(endpoint_url,conn_data,soapaction,charset)
if ret.receive_string =~ /.?(<?xml.?</soapenv:Envelope>).*?/m
ret.receive_string = $1
end
ret
end
end
end

and the reason that is is necessary can you find here:
http://ola-bini.blogspot.com/2006/08/rails-soap4r-and-java.html

in the next to last paragraph.

Regards

Ola B. (http://ola-bini.blogspot.com)
JvYAML, RbYAML, JRuby and Jatha contributor
System Developer, Karolinska Institutet (http://www.ki.se)
OLogix Consulting (http://www.ologix.com)

“Yields falsehood when quined” yields falsehood when quined.

NAKAMURA, Hiroshi wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

Ola B. wrote:
Do your production and development environment both uses http proxy to
access foreign WS?

Hi,

Nope, no proxies anywhere. It’s a straight call through https to the
other machine.

Hmm. There must be an attachment interoperability problem. Can I see
entire response XML?

I don’t have it available right now, but I’ll dig after it. Suffice to
say, there was noise before <?xml (some kind of multipart structure,
maybe), and what looked like the complete PDF sent attached after (the
same data contained in a byte-array inside the SOAP-response)

Regards

Ola B. (http://ola-bini.blogspot.com)
JvYAML, RbYAML, JRuby and Jatha contributor
System Developer, Karolinska Institutet (http://www.ki.se)
OLogix Consulting (http://www.ologix.com)

“Yields falsehood when quined” yields falsehood when quined.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

Ola B. wrote:

I’m using Soap4R 1.5.5. Regarding the old_send, that’s the result of
monkey_patching, since I add some big problems with another thing. Hmm.
old_send is just send renamed. But this shouldn’t be the problem, it
works on another machine and has worked on this machine. The monkey
patching looks like this:
[snip]

Agreed. No suspicious part in old_send.

I think “Bad file descriptor - connect(2) (, #0)” is caused by
TCPSocket.new(“0.0.0.0”, 0). “0.0.0.0” and 0 is a default value of
accessing Site representation in http-access2. Site is used for
representing 1) destination http server and 2) http proxy server. And
for now, with regard to 1), there’s no suspicious part.

Do your production and development environment both uses http proxy to
access foreign WS?

end
end

and the reason that is is necessary can you find here:
http://ola-bini.blogspot.com/2006/08/rails-soap4r-and-java.html

Hmm. There must be an attachment interoperability problem. Can I see
entire response XML?

Regards,
// NaHi
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)

iQEVAwUBRNfuqB9L2jg5EEGlAQKjKQf/XA1NOxjVES2ioLSJ+EY2kfskwaldnq5t
FWd8Deo3l9QkVPCej16egBhULm1q6uJWqgTFDcTK4Z7DpR11QaozWemjP+UvNgpJ
8NjfncgpJcgSKRZXLDEOsgVY9MIBup5q7VU4qgGJxWmpek0lLgzFLgLP4ewEI9C+
C4TUYmH70CCmDkkVGgSX1mtVYxSMJJvJiW8tEWsyALJx5MI0BosDtaj5677bRbRB
Nyyo0r9G88yJF9NM4bmGnRZh8yiX+hMa5nFq+2aai8/LN0lQdfIcI/e4dK+JaW7w
nus7O7tNgQGG9795QCu6uhge7qFUWPi+GI1bKagEJsduSPC5oX5UfA==
=8enK
-----END PGP SIGNATURE-----

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

Ola B. wrote:

Do your production and development environment both uses http proxy to
access foreign WS?

Nope, no proxies anywhere. It’s a straight call through https to the
other machine.

Hmmm. Then the destination site is suspicious but I cannot imagine what
is going on.

Can you add
$log = Logger.new(“http-access2.log”)
at the beginning of http-access2.rb and
$log.debug(site)
around Site object? I’ll send monkey-patched-http-access2.rb if you
want.

Hmm. There must be an attachment interoperability problem. Can I see
entire response XML?

I don’t have it available right now, but I’ll dig after it. Suffice to
say, there was noise before <?xml (some kind of multipart structure,
maybe), and what looked like the complete PDF sent attached after (the
same data contained in a byte-array inside the SOAP-response)

Sure. “noise before XML” and “noise between XML and PDF” are the point.
It may be a standard format which soap4r have not yet supported.

Regards,
// NaHi
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.1 (Cygwin)

iQEVAwUBRNhAph9L2jg5EEGlAQKnmwf7BjUVwKvPQScEt4X+ldwj7Kf2CQ2YVPgR
tQffkdzo60plzWlbgo4wfnWAE6pdPA/z/hd+5qel0oIpj+vobaVaRQAhxckyIk84
7iCzAc7MufklTVsGsyra2aKnuxCYTDpT89B6Ory7h0qXorw9lbVl7beeFr/OuvLL
eSHt5tn40XZV+2lQvSLLt0nKicmmszSM5ek3kFR80CIrTquKPUuam/uGUOEdcK7X
wySvVS9wmrEdVEGLimWU2F93oPAm6MpKr5HHWiCQpU3a+unSxtjMrvYfdSvbIdx5
NXkwD53z9fUyAzKgI9wDeTpfiEEcVBDaPBIObd+H3FJtvWBorrvTBw==
=RFEZ
-----END PGP SIGNATURE-----

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs