Serving XML Datagrams over the Web

The examples we’ve encountered so far in this chapter show that using Java to produce XML for database query results is straightforward. However, all of the examples we’ve seen so far print the XML datagram to the standard “console” output stream System.out. While this makes sense for use on the command line and in scripts, it is one step short of what we need for real Oracle XML applications. For these to be effective, we need to serve application information in XML over the Web.

Serving Datagrams Using Java Servlets

Leveraging the work we’ve already done in the StockQuotesXml class from Example 11.3, we can produce dynamic stock quote datagrams for web delivery by extending HttpServlet in a class called StockQuotesXmlServlet and performing these simple steps inside its overridden doGet method:

  • Set the MIME type of the servlet’s response to text/xml

  • Retrieve the customer id from a URL parameter instead of a command-line argument

  • Call StockQuotesXml.print() to produce the XML for the stocks in the customer’s portfolio

  • Pass the output stream to the Servlet’s HttpServletResponse object instead of System.out

The StockQuotesXmlServlet class in Example 11.6 shows the code that gets the job done.

Tip

To run a Java servlet from JDeveloper 3.1, just select Run from the right mouse button menu in the project navigator. JDeveloper will launch a single-user web server on port 7070 and start your default browser to exercise the running servlet code. You can also ...

Get Building Oracle XML Applications now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.