You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-user@axis.apache.org by Radoslav Dorcik <di...@gmail.com> on 2007/06/27 14:57:37 UTC
Axis C 1.4 support for 64bit architecture - unknown exception
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
Re: Axis C 1.4 support for 64bit architecture - unknown exception
Posted by Radoslav Dorcik <di...@gmail.com>.
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 <di...@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
>
>