Part of my job is integrating existing technology into the portal. One part of this includes Oracle BI Answers. This is Oracle’s new branded edition of Siebel Analytics. Anyways, Oracle exposes a few web services for obtaining data and reports from the repository. I began researching how I was going to consume these services, as a Java and Open Source guy, I chose Axis 2 from Apache. They include a nice utility that generates XMLBeans (also Apache) bindings for the services. Side note, XMLBeans are amazing, everything is that much easier when dealing with SOAP and what not, beautiful.
I had generated the code, and began testing the clients for a basic authorization service. Second side note, Oracle BI runs on IIS 6.0. It’s a Microsoft product. I’ll leave it at that. Anyways, XMLBeans is generating great XML, Axis2 is passing great SOAP envelopes along. IIS, doesn’t like them. It would always respond with Error 413 – Request Entity Too Large. This is not very descriptive of the problem.
Long story short, when using Axis 2 against IIS (I think it’s IIS with the issue, not Oracle BI), make sure your requests are not using Transfer-Encoding: chunked. I think IIS is dying on this. Of course, this is on by default in Axis2, so adding a simple line of code to your clients will switch it off.
myClient._getServiceClient().getOptions().setProperty(HTTPConstants.CHUNKED, "false");
This solved my problems. It turned off chunked encoding, and went back to specifying the Content-Length header on the request.
If you’re having troubles, and the above doesn’t make sense, leave a comment. I’m writing this without the code in front of me.
*sigh* IIS, you took 3 days. I want them back.
February 6th, 2009 at 8:08 am
Thanks for making this available!
March 30th, 2010 at 3:28 pm
Been banging our heads on this for four days. This was the solution.
August 5th, 2011 at 3:14 pm
You just saved me days of sand pounding! Thanks!
September 19th, 2014 at 6:28 am
Thanks thanks thanks