axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jamie <jab...@mweb.co.za>
Subject calling a method with xsd__base64Binary
Date Tue, 10 May 2005 16:45:32 GMT
Hi

I am using the Axis C++ API to send compressed emails from a C++ client 
to a server implemented in Java.

In my client code (see below), I have an exposed function called 
storeMessage, that has a xsd__base64Binary parameter. When I send the 
email without compression (i.e. plaintext), the data is passed 
correctly. However, when I compress the data using zlib, I get a wierd 
message "xarchiveInternalReturn e" (each letter seperated by null 
characters) coming through as a parameter. See source below.


                        CA2GZIP gzip((char*)pszBuffer,ulFileSize); // 
wrapper library for zlib services.. pszBuffer contains plaintext email
                        char endpoint[256];
                        sprintf (endpoint, 
"http://127.0.0.1:8080/testservice/services/TestService");
                        TestService webservice(endpoint);
                        xsd__base64Binary bb;
                        bb.__ptr = (xsd__unsignedByte*)gzip.pgzip; // 
contains compressed data
                        bb.__size = gzip.Length;
                        FILE *aout=fopen("c:\\test.gz","wb"); // just 
for testing to see that the message is valid for debugging purposes
                        size_t count1=fwrite(bb.__ptr,1,bb.__size,aout);
                        fclose(aout);
                        webservice.storeMessage(bb);
       
Am I missing something here? I assume the AXIS will take care of the 
base64 conversion before sending the message?

I have also noticed that Axis C++ generates a nasty access fault when an 
exception is thrown from the client. It tries to delete a stray pointer. 
Has anyone experienced problems with exceptions?

Thanks in advance for your help.

Jamie


Mime
View raw message