Include Base64 encoded data into XML
Please support our Java advertiser: Programming Forums
Thread Solved
![]() |
•
•
Posts: 2
Reputation:
Solved Threads: 0
Hello,
I have to base64 encode a large quantity of data and include it in the XML response of the webservice.The WSDL define the XML element in the following way:
I have implemented it but I have some doubts. I'm not sure it's the better way for doing it.
What about performance if I have an attachment of 1MB? I'm specially worried about the "new String()" operation.
Any suggestion will be appreciated. Thanks,
Alessandro
I have to base64 encode a large quantity of data and include it in the XML response of the webservice.The WSDL define the XML element in the following way:
<xs:complexType name="MessagePart"> <xs:simpleContent> <xs:extension base="xs:base64Binary"> <xs:attribute name="contentType" type="xs:string" default="text/plain" use="optional"/> <xs:attribute name="length" type="xs:int" default="0" use="optional"/> <xs:attribute name="offset" type="xs:int" default="0" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType>
I have implemented it but I have some doubts. I'm not sure it's the better way for doing it.
import org.apache.commons.codec.binary.Base64;
...
OMElement part = factory.createOMElement("part", emptyNs);
part.addAttribute("length", this.attachment.getLength(), null);
byte[] value = Base64.encodeBase64(this.attachment.getValue());
part.setText( new String(value) );What about performance if I have an attachment of 1MB? I'm specially worried about the "new String()" operation.
Any suggestion will be appreciated. Thanks,
Alessandro
Why are you encoding textual data? Base64 is primarily meant to encode binary data.
I don't accept change; I don't deserve to live.
Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.
-- Eric Naggum RIP :-(
Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.
-- Eric Naggum RIP :-(
•
•
Posts: 2
Reputation:
Solved Threads: 0
In fact I'm encoding binary data. Actually, I have changed it in the following way.
Alessandro
import com.sun.xml.rpc.encoding.simpletype.XSDBase64BinaryEncoder;
...
OMElement part = factory.createOMElement("part", emptyNs);
part.addAttribute("length", "" + this.attachment.getLength() + "",null);
part.setText(XSDBase64BinaryEncoder.getInstance().objectToString( this.attachment.get_value() , null ));Alessandro
![]() |
Other Threads in the Java Forum
- Previous Thread: Need Help on calling classes
- Next Thread: Guys I Need help about explaining the code of this PEMDAS calculator.
•
•
•
•
Views: 940 | Replies: 2 | Currently Viewing: 1 (0 members and 1 guests)






Linear Mode