You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by Damien Bouchet <db...@dictao.com> on 2006/04/04 10:56:34 UTC

[AXIS C++ 1.6b] : Deserialization problems

Hello,
 
We have developped a web service based on Axis CPP 1.6b but are now
facing two anomalies during the deserialization of incoming requests : 

*	
	Empty elements

	When one of the elements in the incoming SOAP request is empty,
a sigsegv fault occurs, and the request is not processed by the web
service. We managed to get the service to work with the following
workaround :
	 
	In SoapDeSerializer.cpp, at line 1911 (in the getElement Method)
:
	 
	
	<    else if (END_ELEMENT == m_pNode->m_type)    // We have an
empty string - Jira AXISCPP-93
	<    {
	<     pSimpleType->deserialize("");
	<     m_pNode = m_pParser->next();
	<     return;
	<    }
	 
	>    else if (END_ELEMENT == m_pNode->m_type)    // We have an
empty string - Jira AXISCPP-93
	>    {
	>     pSimpleType->deserialize("");
	>     //Proposed  Fix : We already have read the end element, no
need to skip it
	>     //m_pNode = m_pParser->next();
	>     return;
	>    }
	 
	Does this modification seem correct to you, to fix the sigsegv
fault, or do you recommand another way of fixing this behaviour ?

*	
	Text with accents (acute, grave, ...)

	When one of the elements with a "String" type contains any
character with an accent, calling the getElementAsString method returns
an empty String. The position of the accent in the String doesn't seem
to matter. The incoming SOAP requests are encoded in UTF-8.
	Do you have any idea what can cause such a behaviour and how to
fix it ? Could this have anything to do with bug AXISCPP-947 ?

Thank you for your help on this.
 
Regards,
 
Damien,


---------------------------------------------------------------------------------------------------------------
Ce message et tous les fichiers qui y sont attaches contiennent des informations
confidentielles ou appartenant a Dictao. Ils sont destines a l'intention
exclusive de son (ses) destinataire(s). Toute divulgation, utilisation, diffusion ou
reproduction (totale ou partielle) de ce message, ou des informations
qu'il contient, doit etre prealablement autorisee. Tout message electronique
est susceptible d'alteration et son integrite ne peut etre assuree. Dictao decline
toute responsabilite au titre de ce message s'il a ete modifie ou falsifie. Si vous
n'etes pas destinataire de ce message, merci de le detruire immediatement 
et d'avertir l'expediteur de l'erreur de distribution et de la destruction du message.
Dictao - RCS Paris B 429 383 979 - 42, avenue de la Grande Armee - 75017 Paris

This e-mail and all the attached files contain confidential information or information 
belonging to Dictao. They are intended solely for the addressee(s). The unauthorized 
disclosure, use, dissemination or copying (either whole or partial) of this e-mail, or 
any information it contains, is prohibited. E-mails are susceptible to alteration and 
their integrity cannot be guaranteed. Dictao shall not be liable for this e-mail if
modified or falsified. If you are not the intended recipient of this e-mail, please 
delete it immediately from your system and notify the sender of the wrong 
delivery and the mail deletion.
Dictao  - Registered Office : Paris B 429 383 979 - 42, avenue de la Grande Armee - 75017 Paris - France


Re: [AXIS C++ 1.6b] : Deserialization problems

Posted by John Hawkins <HA...@uk.ibm.com>.
Empty elements: This should work already without the fix are you using the 
1.6 code? If so, can you put the wsdl and the captured SOAP response here 
pls.






"Damien Bouchet" <db...@dictao.com> 
04/04/2006 09:56
Please respond to
"Apache AXIS C Developers List" <ax...@ws.apache.org>


To
"Apache AXIS C Developers List" <ax...@ws.apache.org>
cc

Subject
[AXIS C++ 1.6b] : Deserialization problems






Hello,
 
We have developped a web service based on Axis CPP 1.6b but are now facing 
two anomalies during the deserialization of incoming requests : 
Empty elements
When one of the elements in the incoming SOAP request is empty, a sigsegv 
fault occurs, and the request is not processed by the web service. We 
managed to get the service to work with the following workaround :
 
In SoapDeSerializer.cpp, at line 1911 (in the getElement Method) :
 
<    else if (END_ELEMENT == m_pNode->m_type)    // We have an empty 
string - Jira AXISCPP-93
<    {
<     pSimpleType->deserialize("");
<     m_pNode = m_pParser->next();
<     return;
<    }
 
>    else if (END_ELEMENT == m_pNode->m_type)    // We have an empty 
string - Jira AXISCPP-93
>    {
>     pSimpleType->deserialize("");
>     //Proposed  Fix : We already have read the end element, no need to 
skip it
>     //m_pNode = m_pParser->next();
>     return;
>    }
 
Does this modification seem correct to you, to fix the sigsegv fault, or 
do you recommand another way of fixing this behaviour ?
Text with accents (acute, grave, ...)
When one of the elements with a "String" type contains any character with 
an accent, calling the getElementAsString method returns an empty String. 
The position of the accent in the String doesn't seem to matter. The 
incoming SOAP requests are encoded in UTF-8.
Do you have any idea what can cause such a behaviour and how to fix it ? 
Could this have anything to do with bug AXISCPP-947 ?
Thank you for your help on this.
 
Regards,
 
Damien,
 

Ce message et tous les fichiers qui y sont attaches contiennent des 
informations
confidentielles ou appartenant a Dictao. Ils sont destines a l'intention
exclusive de son (ses) destinataire(s). Toute divulgation, utilisation, 
diffusion ou
reproduction (totale ou partielle) de ce message, ou des informations
qu'il contient, doit etre prealablement autorisee. Tout message 
electronique
est susceptible d'alteration et son integrite ne peut etre assuree. Dictao 
decline
toute responsabilite au titre de ce message s'il a ete modifie ou 
falsifie. Si vous
n'etes pas destinataire de ce message, merci de le detruire immediatement 
et d'avertir l'expediteur de l'erreur de distribution et de la destruction 
du message.
Dictao - RCS Paris B 429 383 979 - 42, avenue de la Grande Armee - 75017 
Paris 
This e-mail and all the attached files contain confidential information or 
information 
belonging to Dictao. They are intended solely for the addressee(s). The 
unauthorized 
disclosure, use, dissemination or copying (either whole or partial) of 
this e-mail, or 
any information it contains, is prohibited. E-mails are susceptible to 
alteration and 
their integrity cannot be guaranteed. Dictao shall not be liable for this 
e-mail if
modified or falsified. If you are not the intended recipient of this 
e-mail, please 
delete it immediately from your system and notify the sender of the wrong 
delivery and the mail deletion.
Dictao - Registered Office : Paris B 429 383 979 - 42, avenue de la Grande 
Armee -
75017 Paris - France