org.apache.ws.axis2.GetInvoiceImageResponse.java:
public static GetInvoiceImageResponse
parse(javax.xml.stream.XMLStreamReader reader)
} else if(reader.hasText()) {
//Do the usual conversion
java.lang.String content =
reader.getText();
object.set_return(
org.apache.axis2.databinding.utils.ConverterUtil.convertToBase64Binary(content));
reader.next();
}
}
which calls org.apache.axis2.databinding.utils.ConverterUtil
public static javax.activation.DataHandler convertToBase64Binary(String s) {
// reusing the byteArrayDataSource from the Axiom classes
ByteArrayDataSource byteArrayDataSource = new ByteArrayDataSource(
Base64.decode(s)
);
return new DataHandler(byteArrayDataSource);
}
which calls org.apache.axiom.om.util.Base64.java
public static byte[] decode(String data) {
char[] ibuf = new char[4];
int ibufcount = 0;
byte[] obuf = new byte[data.length() / 4 * 3 + 3];
int obufcount = 0;
for (int i = 0; i < data.length(); i++) {
char ch = data.charAt(i);
if (ch == S_BASE64PAD || ch < S_DECODETABLE.length
&& S_DECODETABLE[ch] != Byte.MAX_VALUE) {
ibuf[ibufcount++] = ch;
if (ibufcount == ibuf.length) {
ibufcount = 0;
obufcount += decode0(ibuf, obuf, obufcount);
}
}
}
if (obufcount == obuf.length)
return obuf;
byte[] ret = new byte[obufcount];
System.arraycopy(obuf, 0, ret, 0, obufcount);
return ret;
}
looks as if convertToBase64Binary
call to Base64.decode
byte[] obuf = new byte[data.length() / 4 * 3 + 3];
is dividing the data length by 15
what is the expected processing Base64.decode for Base64Binary input
?
Martin Gainty
______________________________________________
Disclaimer and Confidentiality/Verzicht und Vertraulichkeitanmerkung / Note de
déni et de confidentialité
This message is confidential. If you should not be the intended receiver, then
we ask politely to report. Each unauthorized forwarding or manufacturing of a
copy is inadmissible. This message serves only for the exchange of information
and has no legal binding effect. Due to the easy manipulation of emails we
cannot take responsibility over the the contents.
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger
sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung
oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem
Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung.
Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung
fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le
destinataire prévu, nous te demandons avec bonté que pour satisfaire informez
l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est
interdite. Ce message sert à l'information seulement et n'aura pas n'importe
quel effet légalement obligatoire. Étant donné que les email peuvent facilement
être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité
pour le contenu fourni.
From: [email protected]
To: [email protected]
Subject: RE: Sending binary data(not using MTOM) using DataHandler
Date: Tue, 21 Apr 2009 16:21:49 -0400
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="XSD_base64Binary"
...>
assume the element you are referencing in your xsd is type="xsd:base64Binary
datatype"
<xsd:element name="asNonNillableElementResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="nonNillableElement"
type="xsd:base64Binary" nillable="false"
minOccurs="1" maxOccurs="1" /
</xsd:sequence>
</xsd:complexType>
</xsd:element>
?
Martin
could you display your full wsdl
______________________________________________
Disclaimer and Confidentiality/Verzicht und Vertraulichkeitanmerkung / Note de
déni et de confidentialité
This message is confidential. If you should not be the intended receiver, then
we ask politely to report. Each unauthorized forwarding or manufacturing of a
copy is inadmissible. This message serves only for the exchange of information
and has no legal binding effect. Due to the easy manipulation of emails we
cannot take responsibility over the the contents.
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger
sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung
oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem
Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung.
Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung
fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le
destinataire prévu, nous te demandons avec bonté que pour satisfaire informez
l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est
interdite. Ce message sert à l'information seulement et n'aura pas n'importe
quel effet légalement obligatoire. Étant donné que les email peuvent facilement
être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité
pour le contenu fourni.
> From: [email protected]
> To: [email protected]
> Date: Tue, 21 Apr 2009 12:18:16 -0700
> Subject: Sending binary data(not using MTOM) using DataHandler
>
> Hi,
> I have written a service that returns DataHandler containing the binary
> data(pdf file). When I call that service by using the classes generated by
> wsdl2java I only get 12k of the binary data. I have seen as reference to 12K
> buffer wrap issue. I would appreciate if anybody can give me some pointers on
> how to resole this issue. BTW the service is written in grails and exposed
> using AXIS2 plugin and all other services(the one not dealing with binary
> data) work without any issue.
>
> Thanks
> Sanjay
Windows Live™ Hotmail®:…more than just e-mail. Check it out.
_________________________________________________________________
Rediscover Hotmail®: Get quick friend updates right in your inbox.
http://windowslive.com/RediscoverHotmail?ocid=TXT_TAGLM_WL_HM_Rediscover_Updates2_042009