Wsdl2ruby request invalid while soapui's is correct

[Apologies if this ends up being a duplicate post. I’ve been waiting
for
over three hours for my post to appear, so I’m wondering if there is a
problem between Nabble and this list.]

I’m trying to use wsdl2ruby with the optionsXpress web services. The
WSDL
can be retrieved at
https://oxbranch.optionsxpress.com/accountservice/account.asmx?WSDL.

In SOAPUI, the generated raw request looks like this:

Content-Length: 468
Host: oxbranch.optionsxpress.com
User-Agent: Jakarta Commons-HttpClient/3.0.1
SOAPAction: “http://oxbranch.optionsxpress.com/GetOxSessionWithSource
Content-Type: text/xml;charset=UTF-8

<soapenv:Envelope
xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/
xmlns:oxb=“http://oxbranch.optionsxpress.com”>
soapenv:Header/
soapenv:Body
oxb:GetOxSessionWithSource
oxb:sUserName?</oxb:sUserName>
oxb:sPassword?</oxb:sPassword>
oxb:sSessionID?</oxb:sSessionID>
oxb:sSource?</oxb:sSource>
</oxb:GetOxSessionWithSource>
</soapenv:Body>
</soapenv:Envelope>

The wiredump from soap4r request looks like this (after my
clean-up/reformatting):

POST /accountservice/account.asmx/GetOxSessionWithSource HTTP/1.1
Content-Type: text/xml; charset=utf-8
Soapaction: "http://oxbranch.optionsxpress.com/GetOxSessionWithSource\"
User-Agent: SOAP4R/1.5.5
Accept: /
Host: oxbranch.optionsxpress.com
Content-Length: 510

<?xml version=\"1.0\" encoding=\"utf-8\" ?>

<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xsd="http://www.w3.org/2001/XMLSchema\"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/\">
env:Body
<GetOxSessionWithSource xmlns="http://oxbranch.optionsxpress.com">





</env:Body>
</env:Envelope>

The call from SOAPUI works perfectly. The soap4r call results in the
following response:

→ “HTTP/1.1 500 Internal Server Error\r\n”
→ “Cache-Control: private\r\n”
→ “Content-Length: 236\r\n”
→ “Content-Type: text/plain; charset=utf-8\r\n”
→ “Server: Microsoft-IIS/6.0\r\n”
→ “X-Powered-By: ASP.NET\r\n”
→ “X-AspNet-Version: 2.0.50727\r\n”
→ “Set-Cookie: TLTHID=B1B3C4E642E7B78CBAB2CF8EB944A39C; Path=/;
Domain=.
optionsxpress.com\r\n”
→ “Set-Cookie: TLTSID=B1B3C4E642E7B78CBAB2CF8EB944A39C; Path=/;
Domain=.
optionsxpress.com\r\n”
→ “HostName: DABRANCH1\r\n”
→ “Set-Cookie: TLTCNT=DABRANCH10000000000140155\r\n”
→ “Date: Sun, 28 Sep 2008 21:39:30 GMT\r\n”
→ “\r\n”
reading 236 bytes…
→ “System.InvalidOperationException: Request format is invalid:
text/xml;
charset=utf-8.\r\n at
System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()\r\n
at
System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest
()\r\n”
read 236 bytes
Conn keep-alive
System.InvalidOperationException: Request format is invalid: text/xml;
charset=utf-8.
at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
at
System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

I’m not sure, but it looks like the “<?xml…” prolog could be the
problem.
The namespaces seem the same. I don’t understand why the server says
request format text/xml is invalid; that’s what SOAPUI is sending.

I’m new to soap4r. Can anyone with some experience give me a clue
what’s
going on and what to do about it, please? I’ve been spinning my wheels
on
this for longer than I care to admit.

Where are the docs??? If I could just suppress the xml prolog, maybe I
could get past this.

Thanks,
Lee G.
http://www.leegrey.com/hmm

On Sep 28, 10:10 pm, Lee G. [email protected] wrote:

The wiredump from soap4r request looks like this (after my
clean-up/reformatting):

POST /accountservice/account.asmx/GetOxSessionWithSource HTTP/1.1
Content-Type: text/xml; charset=utf-8
Soapaction: "http://oxbranch.optionsxpress.com/GetOxSessionWithSource\"
User-Agent: SOAP4R/1.5.5

Version 1.5.5 is broken. Please install version 1.5.8 and try again.

– Mark.

I’m confused by what seems to be a conflict in JRuby. If I’m reading
things
right (I’m fairly green with Ruby, so I may not be reading it right), I
have
soap4r 1.5.5 installed in JRuby 1.1.4 but soap4r gem 1.5.8 installed, as
well.

How do I run with the gem rather than the stuff in the JRuby library?

Thanks,
Lee

Maybe I should ask this another way:

How do I update my Ruby library to include the latest copy of soap4r? I
have no experience with maintaining the underlying Ruby platform; I’m
just a
user at this point.

Thanks,
Lee

The problem still appears with 1.5.8. Here is my request:

POST /accountservice/account.asmx/GetOxSessionWithSource HTTP/1.1
Content-Type: text/xml; charset=utf-8
Soapaction: “http://oxbranch.optionsxpress.com/GetOxSessionWithSource
User-Agent: SOAP4R/1.5.8
Accept: /
Host: oxbranch.optionsxpress.com
Content-Length: 543

<?xml version="1.0" encoding="utf-8" ?>

<env:Envelope xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance
xmlns:xsd=“http://www.w3.org/2001/XMLSchema
xmlns:env=“http://schemas.xmlsoap.org/soap/envelope/”>
env:Body
<n1:GetOxSessionWithSource
xmlns:n1=“http://oxbranch.optionsxpress.com”>
n1:sUserName</n1:sUserName>
n1:sPassword</n1:sPassword>
n1:sSessionID</n1:sSessionID>
n1:sSource</n1:sSource>
</n1:GetOxSessionWithSource>
</env:Body>
</env:Envelope>

And the response is:

HTTP/1.1 500 Internal Server Error
Cache-Control: private
Content-Length: 236
Content-Type: text/plain; charset=utf-8
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Set-Cookie: TLTHID=6D076B6B48711349484380840CF90FF8; Path=/;
Domain=.optionsxpress.com
Set-Cookie: TLTSID=6D076B6B48711349484380840CF90FF8; Path=/;
Domain=.optionsxpress.com
HostName: EQBRANCH3
Set-Cookie: TLTCNT=EQBRANCH30000000000814400
Date: Sat, 04 Oct 2008 01:49:11 GMT

System.InvalidOperationException: Request format is invalid: text/xml;
charset=utf-8.
at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
at
System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
…c

And it still works fine with SOAPUI, where the request looks like this:

POST /accountservice/account.asmx HTTP/1.1
Content-Type: text/xml;charset=UTF-8
SOAPAction: “http://oxbranch.optionsxpress.com/GetOxSessionWithSource
User-Agent: Jakarta Commons-HttpClient/3.0.1
Host: oxbranch.optionsxpress.com
Content-Length: 458

<soapenv:Envelope
xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/
xmlns:oxb=“http://oxbranch.optionsxpress.com”>
soapenv:Header/
soapenv:Body
oxb:GetOxSessionWithSource
oxb:sUserName</oxb:sUserName>
oxb:sPassword</oxb:sPassword>
oxb:sSessionID</oxb:sSessionID>
oxb:sSource</oxb:sSource>
</oxb:GetOxSessionWithSource>
</soapenv:Body>
</soapenv:Envelope>

Any ideas?

Thanks for any leads!

–Lee