You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Guillaume Sauthier (JIRA)" <ax...@ws.apache.org> on 2004/12/17 16:38:44 UTC

[jira] Created: (AXIS-1732) JAXRPC Handler modification not propagated to actual service implmentation

JAXRPC Handler modification not propagated to actual service implmentation
--------------------------------------------------------------------------

         Key: AXIS-1732
         URL: http://nagoya.apache.org/jira/browse/AXIS-1732
     Project: Axis
        Type: Bug
  Components: SAAJ, Serialization/Deserialization  
    Versions: current (nightly)    
 Environment: JOnAS 4.3.0+
    Reporter: Guillaume Sauthier


I'm facing some problems with server side JAXRPC Handlers that modify the SOAPMessage but theses changes are never propagated to the real service invokation.
After reading some docs, I found an interressting method on SOAPMessage : saveChanges().

Here is an extract :
=== api snippet ===


     saveChanges

public abstract void *saveChanges*()
                         throws SOAPException

   Updates this |SOAPMessage| object with all the changes that have
   been made to it. This method is called automatically when
   |writeTo(OutputStream)| is called.
   However, if changes are made to a message that was
   received or to one that has already been sent, the method
   |saveChanges| needs to be called explicitly in order to save the
   changes. The method |saveChanges| also generates any changes that
   can be read back (for example, a MessageId in profiles that support
   a message id). All MIME headers in a message that is created for
   sending purposes are guaranteed to have valid values only after
   |saveChanges| has been called.

   In addition, this method marks the point at which the data from all
   constituent |AttachmentPart| objects are pulled into the message.

...

=== /api snippet ===

The important part is "|saveChanges| needs to be called explicitly"

This method is never called by Axis, seems that's the role of the Handler to call this method.
Maybe Axis could automatically use msg.saveContext() in some case (after server-side jaxrpc handler chain (request) for example, and maybe client side (response) ). this can be done only if saveRequired is true ...

What do you think ? 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.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


[jira] Updated: (AXIS-1732) JAXRPC Handler modification not propagated to actual service implmentation

Posted by "Guillaume Sauthier (JIRA)" <ax...@ws.apache.org>.
     [ http://nagoya.apache.org/jira/browse/AXIS-1732?page=history ]

Guillaume Sauthier updated AXIS-1732:
-------------------------------------

    Attachment: axis-soapmessage.saveChanges-patch.txt

add a test in test.wsdl.jaxrpchandler2
not very clean, but that show the failure

in the new handler, the saveChanges call is commented, so the test will fail. if you uncomment the line, test pass.


> JAXRPC Handler modification not propagated to actual service implmentation
> --------------------------------------------------------------------------
>
>          Key: AXIS-1732
>          URL: http://nagoya.apache.org/jira/browse/AXIS-1732
>      Project: Axis
>         Type: Bug
>   Components: SAAJ, Serialization/Deserialization
>     Versions: current (nightly)
>  Environment: JOnAS 4.3.0+
>     Reporter: Guillaume Sauthier
>  Attachments: axis-soapmessage.saveChanges-patch.txt
>
> I'm facing some problems with server side JAXRPC Handlers that modify the SOAPMessage but theses changes are never propagated to the real service invokation.
> After reading some docs, I found an interressting method on SOAPMessage : saveChanges().
> Here is an extract :
> === api snippet ===
>      saveChanges
> public abstract void *saveChanges*()
>                          throws SOAPException
>    Updates this |SOAPMessage| object with all the changes that have
>    been made to it. This method is called automatically when
>    |writeTo(OutputStream)| is called.
>    However, if changes are made to a message that was
>    received or to one that has already been sent, the method
>    |saveChanges| needs to be called explicitly in order to save the
>    changes. The method |saveChanges| also generates any changes that
>    can be read back (for example, a MessageId in profiles that support
>    a message id). All MIME headers in a message that is created for
>    sending purposes are guaranteed to have valid values only after
>    |saveChanges| has been called.
>    In addition, this method marks the point at which the data from all
>    constituent |AttachmentPart| objects are pulled into the message.
> ...
> === /api snippet ===
> The important part is "|saveChanges| needs to be called explicitly"
> This method is never called by Axis, seems that's the role of the Handler to call this method.
> Maybe Axis could automatically use msg.saveContext() in some case (after server-side jaxrpc handler chain (request) for example, and maybe client side (response) ). this can be done only if saveRequired is true ...
> What do you think ? 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.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


[jira] Resolved: (AXIS-1732) JAXRPC Handler modification not propagated to actual service implmentation

Posted by "Davanum Srinivas (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXIS-1732?page=history ]
     
Davanum Srinivas resolved AXIS-1732:
------------------------------------

    Resolution: Fixed

fixed.

thanks,
dims

> JAXRPC Handler modification not propagated to actual service implmentation
> --------------------------------------------------------------------------
>
>          Key: AXIS-1732
>          URL: http://issues.apache.org/jira/browse/AXIS-1732
>      Project: Axis
>         Type: Bug
>   Components: Serialization/Deserialization, SAAJ
>     Versions: current (nightly)
>  Environment: JOnAS 4.3.0+
>     Reporter: Guillaume Sauthier
>  Attachments: axis-soapmessage.saveChanges-patch.txt
>
> I'm facing some problems with server side JAXRPC Handlers that modify the SOAPMessage but theses changes are never propagated to the real service invokation.
> After reading some docs, I found an interressting method on SOAPMessage : saveChanges().
> Here is an extract :
> === api snippet ===
>      saveChanges
> public abstract void *saveChanges*()
>                          throws SOAPException
>    Updates this |SOAPMessage| object with all the changes that have
>    been made to it. This method is called automatically when
>    |writeTo(OutputStream)| is called.
>    However, if changes are made to a message that was
>    received or to one that has already been sent, the method
>    |saveChanges| needs to be called explicitly in order to save the
>    changes. The method |saveChanges| also generates any changes that
>    can be read back (for example, a MessageId in profiles that support
>    a message id). All MIME headers in a message that is created for
>    sending purposes are guaranteed to have valid values only after
>    |saveChanges| has been called.
>    In addition, this method marks the point at which the data from all
>    constituent |AttachmentPart| objects are pulled into the message.
> ...
> === /api snippet ===
> The important part is "|saveChanges| needs to be called explicitly"
> This method is never called by Axis, seems that's the role of the Handler to call this method.
> Maybe Axis could automatically use msg.saveContext() in some case (after server-side jaxrpc handler chain (request) for example, and maybe client side (response) ). this can be done only if saveRequired is true ...
> What do you think ? 

-- 
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