axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Davanum Srinivas <dava...@gmail.com>
Subject Re: [jira] Commented: (AXIS-1335) MessageContext.setMessage() clashes with JAX-RPC Handler behavior
Date Wed, 07 Jul 2004 11:26:31 GMT
would you be kind enough to submit a patch :) Yes, latest cvs has the
fixes for 1310.

-- dims

On Tue, 6 Jul 2004 21:02:06 -0700, Algirdas P. Veitas
<aveitas@allesta.com> wrote:
> Unfortunately, fixing 1310 will not alleviate the problem we see below.
> Basically, when using a JAX-RPC Handler there is no way to tell Axis that
> you "havePastPivot".  Thus, if you set a fault message in the soap context
> and return false from your handler it does not do the right thing (i.e. act
> like it has past the pivot).
> 
> The original code will display this result (assuming 1310 has been fixed in
> the codebase you are using).
> 
> Thanks,
>     Al
> 
> ----- Original Message -----
> From: <axis-dev@ws.apache.org>
> To: <aveitas@allesta.com>
> Sent: Tuesday, July 06, 2004 8:05 PM
> Subject: [jira] Commented: (AXIS-1335) MessageContext.setMessage() clashes
> with JAX-RPC Handler behavior
> 
> > The following comment has been added to this issue:
> >
> >      Author: Davanum Srinivas
> >     Created: Tue, 6 Jul 2004 8:03 PM
> >        Body:
> > If we fix AXIS-1310. Will it fix your problem?
> >
> > thanks,
> > dims
> > ---------------------------------------------------------------------
> > View this comment:
> >
> http://issues.apache.org/jira/browse/AXIS-1335?page=comments#action_36536
> >
> > ---------------------------------------------------------------------
> > View the issue:
> >   http://issues.apache.org/jira/browse/AXIS-1335
> >
> > Here is an overview of the issue:
> > ---------------------------------------------------------------------
> >         Key: AXIS-1335
> >     Summary: MessageContext.setMessage() clashes with JAX-RPC Handler
> behavior
> >        Type: Bug
> >
> >      Status: Open
> >    Priority: Major
> >
> >     Project: Axis
> >  Components:
> >              Basic Architecture
> >
> >    Assignee: Davanum Srinivas
> >    Reporter: Algirdas Veitas
> >
> >     Created: Sat, 24 Apr 2004 12:49 PM
> >     Updated: Tue, 6 Jul 2004 8:03 PM
> > Environment: Need to apply patch that was submitted in bug #1310
> >
> > Description:
> > As per the JAX-RPC specification, when a JAX-RPC Handler returns a value
> "false" from handleRequest, it is the responsibility of the Handler to set
> the appropriate response message, during the invocation of handleRequest.
> See below for relevant specification documentation.  If I am
> misinterpreting, please let me know!!
> >
> > With that said, a JAX-RPC Compliant handler used within Axis cannot
> achieve the desired results in this scenario.  When the handle calls
> > setMessage(SOAPMessage) to set the response message, the actual
> implementation of MessageContext sets this value to the internal
> requestMessage because "havePastPivot" is set to false.  The internal method
> of MessageContext is setCurrentMessage().
> >
> > The following code snippet and documentaiton explains in more detail.
> Full handler is attached.
> >
> > public boolean handleRequest(MessageContext context) {
> >
> >     SOAPMessageContext soapMsgContext = (SOAPMessageContext)context;
> >     SOAPMessage faultMessage = buildFaultMessage();
> >
> >     // SETTING THE FAULT MESSAGE FOR THE RESPONSE ENVELOPE, HOWEVER
> >     // SINCE THIS IS A JAX-RPC HANDLER USING AXIS AND
> >     // org.apache.axis.MessageContext AS A CONCRETE IMPLEMENTATION
> >     // "havePastPivot" IS SET TO FALSE SO THIS FAULT MESSAGE
> >     // WILL BE ASSIGNED TO THE REQUEST MESSAGE!!
> >     soapMsgContext.setMessage(faultMessage);
> >     return false;
> > }
> >
> > //
> > public void setCurrentMessage(Message curMsg)
> > {
> >    curMsg.setMessageContext(this);
> >
> >         if (havePassedPivot) {
> >             responseMessage = curMsg;
> >         } else {
> >             requestMessage = curMsg;
> >         }
> >     }
> > }
> >
> > -- START RELEVANT JAX-RPC 1.1 DOCUMENTATION ----
> > "Return false to indicate blocking of the request handler chain. In this
> case, further processing of the request handler chain is blocked and the
> target service endpoint is not dispatched. The JAX-RPC runtime system takes
> the responsibility of invoking the response handler chain next with the
> appropriate SOAPMessageContext. The Handler implementation class has the
> responsibility of setting the response SOAP message in the handleRequest
> method and perform additional processing in the handleResponse method. In
> the default processing model, the response handler chain starts processing
> from the same Handler instance (that returned false) and
> > goes backward in the execution sequence."
> > -- END RELEVANT JAX-RPC 1.1 DOCUMENTATION ----
> >
> >
> >
> > ---------------------------------------------------------------------
> > JIRA INFORMATION:
> > This message is automatically generated by JIRA.
> >
> > If you think it was sent incorrectly contact one of the administrators:
> >    http://issues.apache.org/jira/secure/Administrators.jspa
> >
> > If you want more information on JIRA, or have a bug to report see:
> >    http://www.atlassian.com/software/jira
> >
> >
> 
> 


-- 
Davanum Srinivas - http://webservices.apache.org/~dims/

Mime
View raw message