[
https://issues.apache.org/jira/browse/AXIS2-3879?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17727102#comment-17727102
]
Ralf Hauser commented on AXIS2-3879:
------------------------------------
Still a problem is v1.8.2
Also, a non-2XX HttpServletResponse status should not be overwritten
(especially if it is 5XX already), so in AxisServlet.java:387ff, it should
along the lines of
void processAxisFault(MessageContext msgContext, HttpServletResponse res,
OutputStream out, AxisFault e) {
try {
// If the fault is not going along the back channel we should be
202ing
if (AddressingHelper.isFaultRedirected(msgContext)) {
res.setStatus(HttpServletResponse.SC_ACCEPTED);
} else {
String status =
(String)
msgContext.getProperty(Constants.HTTP_RESPONSE_STATE);
if (status == null) {
log.error("processAxisFault() found a null HTTP status from
the MessageContext"
+ " instance, setting HttpServletResponse status
to: " +
// or rather to
HttpServletResponse.SC_INTERNAL_SERVER_ERROR ?
Constants.HTTP_RESPONSE_STATE);
int statI = res.getStatus();
if (300 > statI) {
res.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
} else {
log.error("processAxisFault() found a non 2XX HTTP
status "
+ "from the response object, so keeping "
+ "HttpServletResponse status on: " + statI);
}
} else {
log.error("processAxisFault() found an HTTP status from the
"
+ "MessageContext instance, setting
HttpServletResponse "
+ "status to: " + status);
int statI = res.getStatus();
if (300 > statI) {
res.setStatus(Integer.parseInt(status));
} else {
log.error("processAxisFault() found a non 2XX HTTP
status "
+ "from the response object, so keeping "
+ "HttpServletResponse status on: " + statI);
}
//no further details written to the body
return;
}
> Ability to change the http status code in the response being sent to the
> client
> -------------------------------------------------------------------------------
>
> Key: AXIS2-3879
> URL: https://issues.apache.org/jira/browse/AXIS2-3879
> Project: Axis2
> Issue Type: Improvement
> Components: transports
> Affects Versions: 1.4
> Reporter: nikki
> Priority: Major
>
> Hello
> I'd like the ability to change the http status code in the reponse. For
> example : I'd like to send in certain cases an http 503 (instead of a 500)
> when a soap fault occurs. Another of my needs is to send a 202 (instead of
> 200 for an in-out operation.)
> Here's what i attempted which didn't work & I was suggested by Saminda to
> open a JIRA.
> HttpServletResponse resp = (HttpServletResponse)
>
> msgContext.getCurrentMessageContext().getProperty(org.apache.axis2.transport.http.HT
> TPConstants.MC_HTTP_SERVLETRESPONSE);
> if (resp != null) {
> System.out.println("Resp not null ");
> resp.setStatus(503 );
> }
> thankyou
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]