Hi Hernan, did you get a SEGV? I remember fixing a SEGV in getElementAsString shortly after alpha. So it might worthwhile to try the 1.5 final.
I have no idea though why it should only happen inside the 4th call to getElementAsString and not before. Carsten -----Original Message----- From: Hernan Silberman [mailto:[EMAIL PROTECTED] Sent: Thursday, April 14, 2005 6:08 PM To: [email protected] Subject: cpp client segfault... Hi there, I'm getting a segfault trying to run my axis-c cpp client: (gdb) backtrace #0 0xb7580fe1 in axiscpp::SoapDeSerializer::getElementAsString () from /usr/pic1/axis-c-1-5-alpha-linux/lib/libaxiscpp_client.so.0 #1 0x0804ae79 in Axis_DeSerialize_tLevel (param=0x807f624, pIWSDZ=0x8056010) at tLevel.cpp:48 #2 0xb757a46d in axiscpp::SoapDeSerializer::getCmplxArray () from /usr/pic1/axis-c-1-5-alpha-linux/lib/libaxiscpp_client.so.0 #3 0xb755dabe in axiscpp::Call::getCmplxArray () from /usr/pic1/axis-c-1-5-alpha-linux/lib/libaxiscpp_client.so.0 #4 0x08049b56 in LevelsServicePortType::getFxLevelsForShot (this=0x804ecc0, Value0=0x804c328 "MAD", Value1=0x804c322 "sq100", Value2=0x804c31f "s1", Value3=0x804c316 "hsilberm") at LevelsServicePortType.cpp:75 #5 0x08049221 in main () at LevelsServiceClient.cpp:14 >From looking at this trace, the segfault occurs in the following code generated by axis-c (I've highlighted tLevel.cpp:48): int Axis_DeSerialize_tLevel(tLevel* param, IWrapperSoapDeSerializer* pIWSDZ) { param->Id = pIWSDZ->getElementAsString( "Id",0); param->Version = pIWSDZ->getElementAsLong( "Version",0); param->ProdCode = pIWSDZ->getElementAsString( "ProdCode",0); param->SequenceName = pIWSDZ->getElementAsString( "SequenceName",0); 48-->param->ShotName = pIWSDZ->getElementAsString( "ShotName",0); param->LevelName = pIWSDZ->getElementAsString( "LevelName",0); param->FxProperty = pIWSDZ->getElementAsString( "FxProperty",0); param->Note = pIWSDZ->getElementAsString( "Note",0); param->LevelType = pIWSDZ->getElementAsString( "LevelType",0); param->IsInPicture = pIWSDZ->getElementAsBoolean( "IsInPicture",0); return pIWSDZ->getStatus(); } The SOAP message axis-c is deserializing is an array of tLevel instances and the segfault occurs while deserializing the first item. I've been staring at this for a while now and I can't find my error though I'm sure it's another WSDL idiosyncrasy I have yet to learn. I appreciate any help you might be able to offer. SOAP messages and WSDL included below. I'm using axis-c 1-5 Alpha. My Server is an Axis Java server. My Java clients generated by Axis Java work fine with this same WSDL. There were no errors in my local AxisClientLog, but I've included the trace that results from the above execution at the end of this message. thanks in advance... Hernan --- SOAP Response Message: <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <getFxLevelsForShotResponse xmlns="http://www.dreamworks.com/nile/schema/"> <Element> <Id>id1</Id> <Version>9999</Version> <ProdCode>MAD</ProdCode> <SequenceName>sq100</SequenceName> <ShotName>s1</ShotName> <LevelName>name1</LevelName> <FxProperty>Dust</FxProperty> <Note>note1</Note> <LevelType>Fx</LevelType> <IsInPicture>true</IsInPicture> </Element> <Element> <Id>id2</Id> <Version>9999</Version> <ProdCode>MAD</ProdCode> <SequenceName>sq100</SequenceName> <ShotName>s1</ShotName> <LevelName>name2</LevelName> <FxProperty>Fire</FxProperty> <Note>note2</Note> <LevelType>Fx</LevelType> <IsInPicture>true</IsInPicture> </Element> <Element> <Id>id3</Id> <Version>9999</Version> <ProdCode>MAD</ProdCode> <SequenceName>sq100</SequenceName> <ShotName>s1</ShotName> <LevelName>name3</LevelName> <FxProperty>Smoke</FxProperty> <Note>note3</Note> <LevelType>Fx</LevelType> <IsInPicture>true</IsInPicture> </Element> <Element> <Id>id4</Id> <Version>9999</Version> <ProdCode>MAD</ProdCode> <SequenceName>sq100</SequenceName> <ShotName>s1</ShotName> <LevelName>name4</LevelName> <FxProperty>Rain</FxProperty> <Note>note4</Note> <LevelType>Fx</LevelType> <IsInPicture>true</IsInPicture> </Element> <Element> <Id>id5</Id> <Version>9999</Version> <ProdCode>MAD</ProdCode> <SequenceName>sq100</SequenceName> <ShotName>s1</ShotName> <LevelName>name5</LevelName> <FxProperty>Flames</FxProperty> <Note>note5</Note> <LevelType>Fx</LevelType> <IsInPicture>true</IsInPicture> </Element> <Element> <Id>id6</Id> <Version>9999</Version> <ProdCode>MAD</ProdCode> <SequenceName>sq100</SequenceName> <ShotName>s1</ShotName> <LevelName>name6</LevelName> <FxProperty>Foam</FxProperty> <Note>note6</Note> <LevelType>Fx</LevelType> <IsInPicture>true</IsInPicture> </Element> </getFxLevelsForShotResponse> </soapenv:Body> </soapenv:Envelope> --- The WSDL: <?xml version="1.0"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.dreamworks.com/LevelService/" targetNamespace="http://www.dreamworks.com/LevelService/" xmlns:typens="http://www.dreamworks.com/nile/schema/"> <types> <xsd:schema targetNamespace="http://www.dreamworks.com/nile/schema/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:element name="getFxLevelsForShot" type="typens:tRequestStruct"/> <xsd:complexType name="tRequestStruct"> <xsd:sequence> <xsd:element name="ProdCode" type="xsd:string"/> <xsd:element name="SequenceName" type="xsd:string"/> <xsd:element name="ShotName" type="xsd:string"/> <xsd:element name="UserLogin" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <xsd:element name="getFxLevelsForShotResponse" type="typens:tLevelCollection"/> <xsd:complexType name="tLevelCollection"> <xsd:sequence> <xsd:element name="Element" type="typens:tLevel" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:simpleType name="tLevelType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Fx"/> <xsd:enumeration value="Char"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="tLevel"> <xsd:sequence> <xsd:element name="Id" type="xsd:string"/> <xsd:element name="Version" type="xsd:long"/> <xsd:element name="ProdCode" type="xsd:string"/> <xsd:element name="SequenceName" type="xsd:string"/> <xsd:element name="ShotName" type="xsd:string"/> <xsd:element name="LevelName" type="xsd:string"/> <xsd:element name="FxProperty" type="xsd:string" nillable="true"/> <xsd:element name="Note" type="xsd:string" nillable="true"/> <xsd:element name="LevelType" type="typens:tLevelType"/> <xsd:element name="IsInPicture" type="xsd:boolean"/> </xsd:sequence> </xsd:complexType> </xsd:schema> </types> <!-- message declns --> <message name="getFxLevelsForShotRequest"> <part element="typens:getFxLevelsForShot"/> </message> <message name="getFxLevelsForShotResponse"> <part element="typens:getFxLevelsForShotResponse"/> </message> <!-- port type declns --> <portType name="LevelsServicePortType"> <operation name="getFxLevelsForShot"> <input name="getFxLevelsForShotRequest" message="tns:getFxLevelsForShotRequest"/> <output name="getFxLevelsForShotResponse" message="tns:getFxLevelsForShotResponse"/> </operation> </portType> <!-- binding declns --> <binding name="LevelsServicePortSoapBinding" type="tns:LevelsServicePortType"> <soapbind:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> <operation name="getFxLevelsForShot"> <soapbind:operation soapAction=""/> <input name="getFxLevelsForShotRequest"> <soapbind:body use="literal"/> </input> <output name="getFxLevelsForShotResponse"> <soapbind:body use="literal"/> </output> </operation> </binding> <service name="LevelsService"> <port name="LevelsService" binding="tns:LevelsServicePortSoapBinding"> <soapbind:address location="http://localhost:8080/nile/services/LevelsService"/> </port> </service> </definitions> --------- Axis C++ trace ---------- Axis C++ libraries built on Feb 8 2005 at 12:19:34 Trace produced on Thu Apr 14 18:06:07 2005 Dumping environment variables... PATH=/usr/pic1/xerces-c-LINUX-c++-2_2_0/bin:/opt/java/j2sdk1.4.2_06/bin:/usr/pic1/apache-ant-1.6.2/bin:/home/oracle/product/9.2.0.5/bin:/pdi/cmd.apr:/pdi/cmd.apr/third_party/wrappers:/usr/local/bin:/usr/kerberos/bin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/bsd:/etc:/usr/etc:/usr/bin/X11:/usr/sw/platform/lsf5.1/bin:/usr/java/bin:/usr/sw/nile/client:/usr/sw/nile/bin:/home/oracle/product/8.1.7/bin LIBPATH was not set LD_LIBRARY_PATH=/usr/pic1/xerces-c-LINUX-c++-2_2_0/lib:/usr/pic1/axis-c-1-5-alpha-linux/lib:/usr/lib:/usr/remote/lib:/usr/local/lib:/home/oracle/product/9.2.0.5/lib:/usr/lib:/usr/remote/lib:/usr/local/lib:/home/oracle/product/8.1.7/lib AXISCPP_DEPLOY was not set PWD=/usr/pic1/axis-c-1-5-alpha-linux/samples/client/levels/output CLASSPATH was not set INCLUDE was not set LIB was not set NLSPATH was not set OS was not set COMPUTERNAME was not set USERNAME=hsilberm HOSTNAME=tear LANG=en_US LOGIN was not set LOGNAME=hsilberm MACHTYPE=i386 OSTYPE=Linux UID was not set USER=hsilberm -------------- Config File settings START ---------------- AXCONF_WSDDFILEPATH = NULL AXCONF_LOGPATH = /usr/pic1/log/AxisLog AXCONF_CLIENTLOGPATH = /usr/pic1/log/AxisClientLog AXCONF_CLIENTWSDDFILEPATH = NULL AXCONF_AXISHOME = NULL AXCONF_TRANSPORTHTTP = /usr/pic1/axis-c-1-5-alpha-linux/lib/libaxis3_transport.so AXCONF_TRANSPORTSMTP = NULL AXCONF_XMLPARSER = /usr/pic1/axis-c-1-5-alpha-linux/lib/libaxis_xercesc.so AXCONF_NODENAME = server name AXCONF_LISTENPORT = listen port AXCONF_SSLCHANNEL_HTTP = Unknown AXCONF_CHANNEL_HTTP = /usr/pic1/axis-c-1-5-alpha-linux/lib/libaxis3_transport_channel.so AXCONF_SECUREINFO = NULL -------------- Config File settings END OF ----------------
