You are not logged in.
I have downloaded the WSO2 Web Services Framework for C from http://wso2.com/products/web-services-framework/c/ and I used the wsclient.exe from tSystem.
I have to create a similar job.
May I ask you to share the routines need to use MTOM?
Thanks in advance!
Never mind. This works fine using the MySQL connector, apparently just a M$ thing...
BTW, this works fine in Talend if I use a java routine to read the file directly into a byte from the file system, just having the problem when trying to do same from a BLOB in a database. Why?
So, I'm able to retrieve a BLOB from a database (M$ Access for test purposes), and send to to an Axis2 web service using MTOM. Working great, with one issue. Talend is for some reason doubling the size of the BLOB before sending it.
I've tried retrieving from the DB as a byte, which doubles in size, and as on Object->byte, which doubles in size also. How to prevent it from doubling in size? It's not like I'm using a string and have the dreaded Unicode conversion issues... Why is this happening?
Here's the java code in the Advanced Settings tab for the tWebServiceInput , and (hopefully) an image of the job. As can be seen, the file length that Java sees is twice (approx) what Talend sees. The length Talend is seeing is correct.
Edit Those two "length" fields are from the SQL query, not the length that Talend is seeing: select filename,filedata,len(filedata) as length from files;
routines.MTOMServicePortType msl = new routines.MTOMSampleLocator().getMTOMSampleSOAP11port_http(); routines.AttachmentType attachmentType = new routines.AttachmentType(); routines.Base64Binary data = new routines.Base64Binary(row3.filedata); System.out.println("File length: " + row3.filedata.length + "\n"); attachmentType.setFileName(row3.filename); attachmentType.setBinaryData(data); output_row.status = msl.attachment(attachmentType);