axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shailesh Srivastava" <shailesh.srivast...@toshiba-tesi.com>
Subject RE: Problem with Complex Objects in AxisCPP Engine!!
Date Mon, 09 Jul 2007 11:58:06 GMT
Dear All,

I have found yet another bug in the AxisCPP 1.6 beta.
In fact its related to the WSDL2WS tool.

Description:
For the Complex Array objects, the Deserializer is not properly
generated.

Problem Faced: All the values in the Complex Array are not available for
use after the deSerializer function.

Reason: "peekNextElementName()" is not used properly. In fact the tool
does not generate the proper sequence of this function in the
DeSerializer functions.

Explanation:
Suppose, the complex array has values as:
	ReportSpec
	{
		Group
		BoundarySpec
		GroupList, etc
	}
ReportSpec[] is a complex Array.
The code Generated by WSDL2WS tool does:
elementName1 = pIWSDZ->peekNextElement()
if (0 == strcmp(elementName,Group)
{
	//Call functions here
}
elementName2 = pIWSDZ->peekNextElement()
if (0 == strcmp(elementName,BoundarySpec)
{
	//Call functions here
}

Now, if Group does not exist, then... 
The Peek takes the Parser control to 2 elements below & hence fails in
the entire DeSerialization.

Solution:
Edit the DeSerialization Function like this:
Bool flag = true;
if (flag){
	elementName1 = pIWSDZ->peekNextElement();
	flag = false;
}
if (0 == strcmp(elementName,Group)
{
	//Call functions here
	Flag = true;
}
If (flag){
	elementName2 = pIWSDZ->peekNextElement();
	flag = false;
}
if (0 == strcmp(elementName,BoundarySpec)
{
	//Call functions here
	Flag = true;
}

Thus Peek is done only when it's needed. And there you go, the problem
is fixed.

I do not know if any one is using axiscpp anymore. But think this will
help.
Note: This problem is there only with the Complex Arrays.

Hope it will help in making the WSDL2WS tool better.

Any comments/inputs are most welcome.

Thanks,
-Shailesh
	
	

-----Original Message-----
From: Shailesh Srivastava [mailto:shailesh.srivastava@ttec.soc-soft.com]

Sent: Wednesday, June 20, 2007 3:50 PM
To: Apache AXIS C User List
Subject: RE: Problem with Complex Objects in AxisCPP Engine!!

Hi Nadir,

Thanks for the information.
I am trying to build from the SVN code base.

I have one simple question, how do I build the axiscpp?
I do not have JAVA in my debian 4.0 machine.

Can I build is without "ant"? If yes, please let me know the procedure
to accomplish the same.

Thanks in Advance
-Shailesh

-----Original Message-----
From: Nadir Amra [mailto:amra@us.ibm.com] 
Sent: Thursday, June 14, 2007 5:12 AM
To: Apache AXIS C User List
Subject: RE: Problem with Complex Objects in AxisCPP Engine!!

I would suggest that you use SVN code base.  If that fails, you can
create 
JIRA and attach WSDL file and expected SOAP response.

Nadir K. Amra
e-Business Technologies - IBM eServer i5/OS
IBM Rochester, MN,  (Tel. 507-253-0645, t/l 553-0645)
Internet: amra@us.ibm.com

"Shailesh Srivastava" <shailesh.srivastava@ttec.soc-soft.com> wrote on 
06/13/2007 08:18:05 AM:

> Hi All,
> 
> Thanks for the information Nadir.
> 
> I tried to use axisxpp 1.6b as well. But with no success.
> 
> Even with axiscpp1.6b I am having the same problem. Axiscpp engine is
> not forming proper complex object.
> Is it a problem with Deep-Copy not being done while copying the
> Parameters??
> 
> If yes, can anyone suggest me where and how can I solve this problem?
> 
> Any help would be appreciated.
> 
> Thanks in Advance
> -Shailesh
> -----Original Message-----
> From: Nadir Amra [mailto:amra@us.ibm.com] 
> Sent: Tuesday, June 12, 2007 2:04 AM
> To: Apache AXIS C User List
> Cc: axis-c-user@ws.apache.org
> Subject: Re: Problem with Complex Objects in AxisCPP Engine!!
> 
> You should move to AXISCPP 1.6Beta, at the very least.  Better way
would
> 
> be to build the current codebase from SVN since there are numerous
fixes
> 
> that are not in 1.6Beta
> 
> Nadir K. Amra
> 
> 
> "Shailesh Srivastava" <shailesh.srivastava@ttec.soc-soft.com> wrote on

> 06/11/2007 08:14:22 AM:
> 
> > I am facing a very serious problem with AxisCPP.
> > 
> > The problem is a show-stopper for me.
> > 
> > Here I explain:
> > 
> > 
> > 
> > I am trying to deploy a web-service for ALE(application level
events)
> as
> > per the EPC Global standards. WSDL file has been taken from the EPC
> > Global Standard web-site.
> > 
> > 
> > 
> > The services are deployed properly. 
> > 
> > The Client sends an XML file, which axis server receives and
> > deserializes into Objects named as ECSpecs ( It's a complex type
> > object).
> > 
> > 
> > 
> > But the Values in the ECSpec complex object are not proper.
> > 
> > Example:
> > 
> > The XML file sent by Client is:
> > 
> > <?xml version="1.0" encoding="UTF-8" ?> 
> > 
> > - <ale:ECSpec xmlns:ale="urn:epcglobal:ale:xsd:1"
> > xmlns:epcglobal="urn:epcglobal:xsd:1"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > xsi:schemaLocation="urn:epcglobal:ale:xsd:1 Ale.xsd"
> schemaVersion="1.0"
> > creationDate="2003-08-06T10:54:06.444-05:00">
> > 
> > - <logicalReaders>
> > 
> >   <logicalReader>dock_1a</logicalReader> 
> > 
> >   <logicalReader>dock_1b</logicalReader> 
> > 
> >   </logicalReaders>
> > 
> > - <boundarySpec>
> > 
> >   <startTrigger>http://sample.com/trigger1</startTrigger> 
> > 
> >   <repeatPeriod unit="MS">20000</repeatPeriod> 
> > 
> >   <stopTrigger>http://sample.com/trigger2</stopTrigger> 
> > 
> >   <duration unit="MS">3000</duration> 
> > 
> >   </boundarySpec>
> > 
> > - <reportSpecs>
> > 
> > - <reportSpec reportName="report1">
> > 
> >   <reportSet set="CURRENT" /> 
> > 
> >   <output includeTag="true" /> 
> > 
> >   </reportSpec>
> > 
> > - <reportSpec reportName="report2">
> > 
> >   <reportSet set="ADDITIONS" /> 
> > 
> >   <output includeCount="true" /> 
> > 
> >   </reportSpec>
> > 
> > - <reportSpec reportName="report3">
> > 
> >   <reportSet set="DELETIONS" /> 
> > 
> > - <groupSpec>
> > 
> >   <pattern>urn:epc:pat:sgtin-64:X.X.X.*</pattern> 
> > 
> >   </groupSpec>
> > 
> >   <output includeCount="true" /> 
> > 
> >   </reportSpec>
> > 
> >   </reportSpecs>
> > 
> > </ale:ECSpec>
> > 
> > 
> > 
> > When I try to access startTrigger etc, values the simple_axis_server
> > dumps.
> > Also, the repeatPeriod which is defined as "xsd__long" and should
have
> a
> > value "2000" is getting a value "275638678"
> > 
> > 
> > 
> > I am using Xerces 2.2 and axiscpp 1.4. I guess it's a problem either
> > with the XML Parser or Desrialization function.
> > 
> > 
> > 
> > Can any one (Samisa, or any one) help me in this regard.
> > 
> > 
> > 
> > Is it a problem with deep copy not being done in engine????
> > 
> > 
> > 
> > Awaiting your response.
> > 
> > 
> > 
> > Thanks in Advance
> > 
> > -Shailesh
> > 
> > Shailesh Srivastava
> > Sr. Software Engineer
> > Ttec.soc-soft.com
> > Extn:3297
> > Mb: +919886624708
> > 
> > 
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-c-user-help@ws.apache.org
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-c-user-help@ws.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-c-user-help@ws.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-user-help@ws.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-user-help@ws.apache.org

Mime
View raw message