I have a client application which makes a call to the pentaho ServiceAction servlet. When my request starts to get long, it gets back the following exception:

java.io.IOException: Server returned HTTP response code: 400 for URL: http://localhost:19400/pentaho/ServiceAction
I looked at the source code in the pentaho bi-server to trace what happens to my request after it reaches the ServiceAction. ServiceAction seems to be a servlet which is processed by the HttpWebService class in the org.pentaho.platform.web.servlet package. The doGet method in this class makes various calls to other classes. During the process of its execution, an exception is being thrown somewhere, but I don't see any stacktrace in the log (not even at trace/debug log level).

Next, I scanned the pentaho bi-server code for all of the places that return/generate a HTTP 400 code. I could only find one location (the AbstractAxisServiceContentGenerator class in the org.pentaho.platform.plugin.services.webservices.content package). This class contains a method called handleFault which is an error handler which takes an exception, wraps it inside a MessageContext, passes the MessageContext to the AxisEngine.sendFault method, and then returns an HTTP 400.

According to the source code for the AxisEngine.sendFault method, it should log something about the exception at trace level, but I didn't get any log output from this method.

So I was wondering if anyone had any advice or knew answers to a few questions:

1. Has anyone ever experienced issues with long sets of parameters being sent to ServiceAction? My client works fine for small request packets (10-20 fields), but fails on larger requests (30+ fields).

2. How do I get the Axis interface to log the stacktrace on the server when an error occurs? I did add a log4j logger category for "org.apache.axis2" at TRACE level, but no new stacktraces appeared.

Any ideas or help would be appreciated. Thanks.