- From: Aaron Reed <aaronr@us.ibm.com>
- Date: Fri, 16 Feb 2007 14:04:28 -0600
- To: www-forms@w3.org
Hi Iņaki,
I am no servlet or java guru by any stretch of the imagination, but this
is what I did to build a simple servlet that got a xml document from
xforms, tweaked a few text nodes in it (via the method
changePassword()), and then sent back a xml response to replace the
instance that was sent:
public void doWork(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String contentType = req.getContentType();
if(contentType.equalsIgnoreCase("text/xml") ||
contentType.equalsIgnoreCase("application/xml")) {
InputStream inputStream = req.getInputStream();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder docBuilder = factory.newDocumentBuilder();
Document doc = docBuilder.parse(inputStream);
if(doc != null) {
boolean result = changePassword(doc);
if (result == true) {
resp.setContentType(contentType);
// following code serializes dom to xml file
OutputFormat of = new OutputFormat(doc);
of.setIndenting(false);
ServletOutputStream outputStream = resp.getOutputStream();
XMLSerializer serializer = new XMLSerializer();
serializer.setOutputFormat(of);
serializer.setOutputByteStream(outputStream);
DOMSerializer domSerializer = serializer.asDOMSerializer();
domSerializer.serialize(doc);
outputStream.flush();
outputStream.close();
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Again, I don't know if this is the way a 'real' app designer would do
it, but it worked for me in my little test scenario.
Good luck,
--Aaron
Iņaki Salinas Bueno wrote:
> Hello,
>
> Can someone recommend me a set of libraries that allow a servlet
> receive/send XML documents from/to xforms? I have found several
> libraries, but I don't know which is more adapted for what I want to do.
>
> I'm using xforms in client side and a servlet for xindice (DB manager)
> calls in server side.
>
> The servlet gets the xml document from xforms and add it in the DB
> correctly (I used a Xindice web application example and the tip 'Xforms
> tip: Accepting XForms data in Java
> <http://www-128.ibm.com/developerworks/java/library/x-xformstipjava/index.html>'
> for its construction), but I don't know how can I get a XML document
> from DB and put it in the response object of the servlet.
>
> The example of the tip works with strings, so following it for the
> response I would have to take the XML document of the DB, transform it
> into a string, and then send it. Cannot be the XML document sent as
> application/xml without transforming it into a string?
>
> Maybe questions are more java related than xforms, but they are
> working-with-xml related so I think that I can found help in this forum.
>
> Thanks
> Iņaki
Received on Friday, 16 February 2007 20:16:43 UTC