axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Radoslav Dorcik" <dixie...@gmail.com>
Subject Re: Axis C 1.4 support for 64bit architecture - unknown exception
Date Wed, 27 Jun 2007 16:37:24 GMT
Hi Guys,

we finaly found issue with Axis 1.4 C lib on 64 bit architecture since they
are using "unsigned int" as storage for "string::npos"
but string::npos on 64 bit architecture is 8 bytes. And when they do
something like this:
unsigned int npos = string.find...("fo");  /* not found, returns npos */
if(npos == string::npos)
{
   //not reached on 64 bit
}

These classes are affected:
BasicTypeSerializer.cpp
Axis2Transport.cpp

Now i don't know what to do...

Regards,
Radoslav


On 6/27/07, Radoslav Dorcik <dixiecko@gmail.com> wrote:
>
> Hello Guys,
>
> we decided to use Axis C 1.4 for our project (simple SOAP client
> communication). Problem is that 64 bit compiled version of libraries doesn't
> work:
> I got unknown exception in (found by tracing in gdb)
> axispp::SoapMethod::serializeOutputParam() and program is aborted
>
> This part of code causes the Exception in Axis library:
> for(<list<Param*>::iterator it = m_OutputParams.begin(); it !=
> m_OutputParams.end(); it++)
>
> This part of code causes the Exception in STL (probably list):
> { return static_cast<_Node*>(_M_node)->_M_data; }
>
> It happens during "invoke" call of WS client generated by WSDL2C but also
> with Soap Test suite included in Axis C++ 1.4.
>
> With 1.6b we were able to run SOAP client communication. Param.h/Param.cpp
> is different between 1.6b and 1.4 version of Axis C++.
>
> sk1u05r9@sk16496c:~> uname -a
> Linux sk16496c 2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 2005 x86_64
> x86_64 x86_64 GNU/Linux
>
> Can be Axis 1.4 C used on above machine ? Do you need more informations ?
>
> 32bit version (libs and apps) are working fine with that machine but our
> application should be compiled as 64 binary.
>
> Thanks,
> Radoslav Dorcik
>
>

Mime
View raw message