I’ve got a simple Grails app (1.3.7) in which I’m testing exceptions and returning specific HTTP status codes to the client.
I’ve disabled the default "500" (view: '/error') in URLMappings to prevent Grails from rendering the response using the standard error view.
I’ve got a simple closure in my controller to which I redirect, after catching an exception, and render the response…
def remoteError = {
response.status = 500
render ([__error: "A remote error occurred"] as JSON)
}
On one instance of WebLogic 10.3, when the test exception is thrown, the response is as follows…
{
__error: "A remote error occurred"
}
..exactly what I expected.
But the same exact WAR file deployed to another WebLogic 10.3 instance produces the standard Grails error page, seen below. Since the WAR file did not change, I’m trying to figure out what setting in WebLogic is causing this to behave differently compared to the other instance.

Turns out this problem was related to a missing plugin in our deployment WAR. On one instance of WebLogic, the plugin was in the maven/ivy cache, but on the other it was not, and this is why the WAR appeared to behave differently.