Phew,
I just put xalan.jar into C:\Program
Files\Apache\jakarta-tomcat-4.1.31\webapps\axis\WEB-INF\lib and lo and behold
the bloody *!@ poggram worked, think it was devine inspiration or something but
I dont know why it worked!! Man think I'm gonna change my college course to
ancient Umpa-Lumpa Geneology or something!!!
--
Between the question and the answer lies pure chance...
Quoting James Taylor <[EMAIL PROTECTED]>:
> Hey people,
> for the moment as I'm inept to logging I'm using simple
> System.out.println to debug to Tomcat's console - as I have the liberty of
> testing locally - and have changed the class that is wrecking my head to the
> below listing. I've been trying to work this out for about 2 full days and am
> stuck, which is when we really have to learn and the open window looks really
> appealling.. bet you wish i'd just jump!!
> You see when I run the class from the main method I get the
> following
> output -
> run:
> [echo] run task. Running flightCompany.xmlHelper.DOMGetFlightsXMLImpl...
> [java] ============Getting XML String=====================
> [java] Creating xml dom doc
> [java] about to head into loop to parse list
> [java] left the loop so we have added nodes to dom
> [java] About to turn dom to string
> [java] ========Hello from transformDOMtoString().
> [java] got TransformerFactory...
> [java] got Transformer...
> [java] Got DOMSource...
> [java] Got StringWriter...
> [java] transformed dom...
> [java] =======sending back this<?xml version="1.0"
> encoding="UTF-8"?><FlightList
> xmlns="FlightList.xsd"><Flight><FlightNum>0</FlightNum><SourceAirport></So
>
urceAirport><DestAirport></DestAirport><FlightDate></FlightDate><SeatsAvailible>
>
0</SeatsAvailible><SeatPrice>0</SeatPrice></Flight><Flight><FlightNum>0</FlightN
>
um><SourceAirport></SourceAirport><DestAirport></DestAirport><FlightDate></Fligh
>
tDate><SeatsAvailible>0</SeatsAvailible><SeatPrice>0</SeatPrice></Flight></Fligh
> tList>
> [java] <?xml version="1.0" encoding="UTF-8"?><FlightList
> xmlns="FlightList.
>
xsd"><Flight><FlightNum>0</FlightNum><SourceAirport></SourceAirport><DestAirport
>
></DestAirport><FlightDate></FlightDate><SeatsAvailible>0</SeatsAvailible><SeatP
>
rice>0</SeatPrice></Flight><Flight><FlightNum>0</FlightNum><SourceAirport></Sour
>
ceAirport><DestAirport></DestAirport><FlightDate></FlightDate><SeatsAvailible>0<
> /SeatsAvailible><SeatPrice>0</SeatPrice></Flight></FlightList>
> [echo] Done...
>
> BUILD SUCCESSFUL
> Total time: 3 seconds
>
> .... This is what I want to send back to the service requester. But, and a
> horrible but that I cant figure out why, when I implement the code as a web
> service and run the client code the debug statements to tomcat's console
> seems
> to indicate that it hangs around the
> DOMGetFlightsXMLImpl.transformDOMtoString(Document) method at this line (171)
> TransformerFactory tFactory = TransformerFactory.newInstance();
> This is what the console looks like -
>
>
> 03-Jun-2005 03:13:42 org.apache.coyote.http11.Http11Protocol init
> INFO: Initializing Coyote HTTP/1.1 on http-8080
> Starting service Tomcat-Standalone
> Apache Tomcat/4.1.31
> 03-Jun-2005 03:13:43 org.apache.struts.util.PropertyMessageResources <init>
> INFO: Initializing, config='org.apache.struts.util.LocalStrings',
> returnNull=tru
> e
> 03-Jun-2005 03:13:43 org.apache.struts.util.PropertyMessageResources <init>
> INFO: Initializing, config='org.apache.struts.action.ActionResources',
> returnNul
> l=true
> 03-Jun-2005 03:13:43 org.apache.struts.util.PropertyMessageResources <init>
> INFO: Initializing, config='org.apache.webapp.admin.ApplicationResources',
> retur
> nNull=true
> 03-Jun-2005 03:13:46 org.apache.coyote.http11.Http11Protocol start
> INFO: Starting Coyote HTTP/1.1 on http-8080
> 03-Jun-2005 03:13:46 org.apache.jk.common.ChannelSocket init
> INFO: JK2: ajp13 listening on /0.0.0.0:8009
> 03-Jun-2005 03:13:46 org.apache.jk.server.JkMain start
> INFO: Jk running ID=0 time=0/30 config=C:\Program
> Files\Apache\jakarta-tomcat-4
> .1.31\conf\jk2.properties
> ====================================
> about to convert to string
> ============Getting XML String=====================
> Creating xml dom doc
> about to head into loop to parse list
> left the loop so we have added nodes to dom
> About to turn dom to string
> ========Hello from transformDOMtoString().
>
>
> /*
> * Created on 10-5-2005
> */
>
> package flightCompany.xmlHelper;
>
> import org.w3c.dom.Document;
> import org.w3c.dom.Element;
> import org.w3c.dom.Node;
>
> //Import log4j classes.
> import org.apache.log4j.HTMLLayout;
> import org.apache.log4j.Level;
> import org.apache.log4j.Logger;
> import org.apache.log4j.BasicConfigurator;
> import org.apache.log4j.WriterAppender;
>
> import javax.xml.transform.dom.DOMSource;
> import javax.xml.parsers.DocumentBuilder;
> import javax.xml.parsers.DocumentBuilderFactory;
> import javax.xml.parsers.ParserConfigurationException;
> import javax.xml.transform.TransformerFactory;
> import javax.xml.transform.TransformerException;
> import javax.xml.transform.TransformerConfigurationException;
> import javax.xml.transform.Transformer;
> import javax.xml.transform.stream.StreamResult;
>
>
> import java.io.FileOutputStream;
> import java.io.StringWriter;
> import java.util.Iterator;
> import java.util.LinkedList;
>
> import flightCompany.exceptions.XMLException;
> import flightCompany.model.Flight;
>
>
> /**
> * This helper provides XML & XML String object mapping the DAO methods and
> the
> * database model to xml.
> * @author James Taylor
> * @version 1.2
> */
>
> public class DOMGetFlightsXMLImpl implements GetFlightsXMLIF{
> //logger
> static Logger logger = Logger.getLogger(DOMGetFlightsXMLImpl.class);
> private Document doc;
> private Element root;
>
>
> /**
> * Instantiate class members by creating a DOM document and a
> root
> tag
> element for it.
> * using a root tag.
> * @param rootTagName root tag for document
> * @throws throws XMLException
> */
> protected void createXMLDocument(String rootTagName) throws
> XMLException{
>
> DocumentBuilderFactory factory =
> DocumentBuilderFactory.newInstance();
> try {
> factory.setNamespaceAware(true);
> DocumentBuilder builder = factory.newDocumentBuilder();
> doc = builder.newDocument();
> root = doc.createElementNS("FlightList.xsd",
> rootTagName);
> //add root tag
> doc.appendChild(root);
> } catch (ParserConfigurationException e) {
> throw new XMLException("XMLExcepion in
> DOMGetFlightsXMLImpl.createXMLDocument() " + e.getMessage() );
> }
> }
>
> /*
> * Given a list of flight objects this returns a xml string
> representation of
> them
> * @param flights list of flights to put in xml form
> * @throws XMLException
> */
> public String getFlightListAsXMLString(Iterator flights){
> try{
> System.out.println("============Getting XML
> String=====================");
> System.out.println("Creating xml dom doc");
> createXMLDocument("FlightList");
> }catch( XMLException xmle ){
> String result = "<Error> Error creating the xml
> document "+
> xmle.getMessage() +" </Error>";
> System.out.println( result);
> return result;
> }
> if (!flights.hasNext() )
> return "<Result> Couldn't find any flights to parse into
> xml</Result>";
> try{
> System.out.println("about to head into loop to parse
> list");
> while (flights.hasNext()) {
> Flight f = (Flight)flights.next();
> addFlightNode(root, f);
> }
> System.out.println("left the loop so we have added nodes
> to
> dom");
> }catch( Exception e ){
> String result = "<Error> Error making adding nodes
> to
> the xml doc "+
> e.getMessage() +" </Error>";
> System.out.println( result);
> return result;
> }
> try{
> System.out.println("About to turn dom to string");
> return transformDOMtoString(doc);
> }catch( XMLException xmle ){
> String result = "<Error> Error making string
> representation on xml doc "+
> xmle.getMessage() +" </Error>";
> System.out.println( result);
> return result;
> }
> }
>
> /**
> * Add XML data mapping from Flight objs to XML by populating the
> DOM
> document
> object
> * @param parent root tag
> * @param f flight object to be parsed to xml
> * @throws XMLException
> */
> protected void addFlightNode(Node parent, Flight f) throws
> XMLException{
> try{
> //add <Flight> element
> Element flElem = doc.createElement("Flight");
> parent.appendChild(flElem);
>
> // Make <FlightNum> element and add it
> Element elem = doc.createElement( "FlightNum" );
> elem.appendChild(doc.createTextNode( String.valueOf(
> f.getFlightNum() )
> ));
> flElem.appendChild(elem);
>
>
> // Make <SourceAirport> element and add it
> elem = doc.createElement("SourceAirport");
> elem.appendChild(doc.createTextNode( f.getSourceAirport() ));
> flElem.appendChild(elem);
>
> // Make <DestAirport> element and add it
> elem = doc.createElement( "DestAirport" );
> elem.appendChild(doc.createTextNode( f.getDestAirport() ));
> flElem.appendChild(elem);
>
> // Make <FlightDate> element and add it
> elem = doc.createElement( "FlightDate" );
> elem.appendChild(doc.createTextNode( f.getFlightDate() ));
> flElem.appendChild(elem);
>
> //Make <SeatsAvailible> element and add it
> elem = doc.createElement( "SeatsAvailible" );
> elem.appendChild(doc.createTextNode( String.valueOf(
> f.getSeatsAvailible() ) ));
> flElem.appendChild(elem);
>
> //Make <SeatsAvailible> element and add it
> elem = doc.createElement( "SeatPrice" );
> elem.appendChild(doc.createTextNode( String.valueOf(
> f.getSeatPrice() )
> ));
> flElem.appendChild(elem);
> }catch (Exception e) {
> throw new XMLException("XMLExcepion in
> DOMGetFlightsXMLImpl.addFlightNode() " + e.getMessage() );
> }
> }
>
>
>
> /**
> *
> * @param xDoc Dom document to convert to a string
> * @return a string representation of a DOM document object
> * @throws XMLException
> */
> protected String transformDOMtoString(Document xDoc) throws
> XMLException {
> try {
> System.out.println("========Hello from
> transformDOMtoString().");
> // Use a Transformer for String output
> TransformerFactory tFactory =
> TransformerFactory.newInstance();
> System.out.println("got TransformerFactory...");
> Transformer transformer = tFactory.newTransformer();
> System.out.println("got Transformer...");
> DOMSource source = new DOMSource(xDoc);
> System.out.println("Got DOMSource...");
> StringWriter sw = new StringWriter();
> System.out.println("Got StringWriter...");
> transformer.transform(source, new StreamResult(sw));
> System.out.println("transformed dom...");
> String result = sw.toString();
> System.out.println("=======sending back this" + result);
> return result;
> }catch (TransformerConfigurationException tce) {
>
> System.out.println("TransformerConfigurationException");
> throw new XMLException("XMLExcepion in
> DOMGetFlightsXMLImpl.transformDOMtoString() " + tce.getMessageAndLocation()
> );
> }catch (TransformerException te) {
> System.out.println("TransformerException");
> throw new XMLException("XMLExcepion in
> DOMGetFlightsXMLImpl.transformDOMtoString() " + te.getMessageAndLocation() );
> }
> }
>
>
> /**
> * Just to test the imlementation
> *
> public static void main(String[] arg) {
> try{
> DOMGetFlightsXMLImpl helper = new
> DOMGetFlightsXMLImpl();
> LinkedList flights = new LinkedList();
> Flight f = new Flight();
> Flight fl = new Flight();
> flights.add( f );
> flights.add( fl );
> Iterator iter = flights.iterator();
>
> System.out.println(helper.getFlightListAsXMLString(iter) );
> }
> catch ( Exception saxe ){
> throw new XMLException("Error in parsing xml"+
> saxe.getMessage()
> );
> }
> }
> **/
> }
>
>
> Quoting James Taylor <[EMAIL PROTECTED]>:
>
> > I think its happening somewhere around
> > DOMGetFlightsXMLImpl.transformDOMtoString(Document) call, but cant figure
> out
> > why??!!
> > Quoting James Taylor <[EMAIL PROTECTED]>:
> >
> > > Hey folks,
> > > apologies for sending such a long mail, I've this web
> > service
> > > that keeps throwing this really annoying
> > > java.lang.reflect.InvocationTargetException and would really appreciate
> it
> > if
> > > someone could help me put my finger on whats going wrong cause I'm at my
> > wits
> > > end. This is the error I keep getting back:
> > >
> > > HTTP/1.1 500 Internal Server Error
> > > Set-Cookie: JSESSIONID=AD9B5C8B6BB70316879AE7CF8219794E; Path=/axis
> > > Content-Type: text/xml;charset=utf-8
> > > Date: Thu, 02 Jun 2005 19:39:10 GMT
> > > Server: Apache-Coyote/1.1
> > > Connection: close
> > >
> > > <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > >
> >
>
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server.userException</faultcode><faultstring>java.lang.reflect.InvocationTargetException</faultstring><detail><ns1:hostname
> > >
> >
>
xmlns:ns1="http://xml.apache.org/axis/">taylorjw</ns1:hostname></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
> > >
> > > ...the web service takes a list of flights in the form and makes an xml
> > > string
> > > out of them using DOM. I know the xml stuff works on its own but I think
> > > thats
> > > where the error is somehow happening but I cant for the life of me figure
> > out
> > > where. The code for the web service is
> > >
> > > package flightCompany.rpcservice;
> > >
> > > import java.util.Iterator;
> > > import java.util.LinkedList;
> > >
> > > import flightCompany.xmlHelper.DOMGetFlightsXMLImpl;
> > > import flightCompany.xmlHelper.GetFlightsXMLIF;
> > > import flightCompany.model.Flight;
> > >
> > > /**
> > > * A JAX-RPC Web service that takes a date and returns a xml String of
> > > flights
> > > * available on that date.
> > > * Created on 11-May-2005
> > > * @author James Taylor
> > > * @version 1.1
> > > */
> > >
> > > public class FlightInfoService implements FlightInfoServiceIF{
> > >
> > > /**
> > > * returns as string representation of a list of available
> flights.
> > > * @param date date of flights to search for.
> > > * @return xml String of available flights
> > > * @throws ava.rmi.RemoteException
> > > */
> > > public String getFlights(String date) throws
> java.rmi.RemoteException{
> > > Flight f = new Flight();
> > > Flight fl = new Flight();
> > > LinkedList flights = new LinkedList();
> > > flights.add( f );
> > > flights.add( fl );
> > > // Instantiate the XMLHelper
> > > GetFlightsXMLIF xmlHelper = new DOMGetFlightsXMLImpl();
> > > System.out.println("about to convert to string");
> > > //turn list to xml
> > > String result = xmlHelper.getFlightListAsXMLString(
> flights.iterator()
> > > );
> > > System.out.println("Got me xml shit");
> > > return result;
> > > }
> > >
> > >
> > > }
> > >
> > > ....the code for a flight object is your ordinary bean kinda stuff
> > >
> > > /*
> > > * Created on 11-May-2005
> > > */
> > > package flightCompany.model;
> > >
> > >
> > >
> > > /**
> > > * Data model of a FlightInfo table entry, mapping the database model and
> > the
> > > xml we receive.
> > > * @author James Taylor
> > > * @version 1.1
> > > */
> > > public class Flight{
> > > private int flightNum;
> > > private String sourceAirport;
> > > private String destAirport;
> > > private String flightDate;
> > > private int seatsAvailible;
> > > private int seatPrice;
> > > private String numberOfSeatsToBook;
> > > private int bookingNumber;
> > >
> > > /**
> > > * Default constructor used in xml mapping, it just initialises
> and
> > creates
> > > instance variables
> > > */
> > > public Flight() {
> > > this.sourceAirport = "";
> > > this.destAirport = "";
> > > this.flightDate = "";
> > > this.seatPrice = 0;
> > > this.seatsAvailible = 0;
> > > this.flightNum = 0;
> > > this.numberOfSeatsToBook = "";
> > > bookingNumber = 0;
> > > }
> > >
> > > /**
> > > * constructor used to map the database model
> > > * @param ID flight id
> > > * @param src source airport
> > > * @param dest destination airport
> > > * @param date date of flight
> > > * @param seatsAv number of seats available
> > > * @param price price of a seat
> > > */
> > > public Flight(int ID, String src, String dest, String date, int
> seatsAv,
> > int
> > > price) {
> > > flightNum = ID;
> > > sourceAirport = src;
> > > destAirport = dest;
> > > flightDate = date;
> > > seatsAvailible = seatsAv;
> > > seatPrice = price;
> > > this.numberOfSeatsToBook = "";
> > > bookingNumber = 0;
> > > }
> > >
> > > public void setNumberOfSeatsToBook(String n){ numberOfSeatsToBook
> =
> n; }
> > > public String getNumberOfSeatsToBook(){ return
> numberOfSeatsToBook;
> }
> > >
> > > public void setFlightNum(int n){ flightNum = n; }
> > > public int getFlightNum(){ return flightNum; }
> > >
> > > public void setSourceAirport(String src){ sourceAirport = src; }
> > > public String getSourceAirport(){ return sourceAirport; }
> > >
> > > public void setDestAirport(String src){ destAirport = src; }
> > > public String getDestAirport(){ return destAirport; }
> > >
> > > public void setFlightDate(String src){ flightDate = src; }
> > > public String getFlightDate(){ return flightDate; }
> > >
> > > public void setSeatsAvailible(int n){ seatsAvailible = n; }
> > > public int getSeatsAvailible(){ return seatsAvailible; }
> > >
> > > public void setSeatPrice(int n){ seatPrice = n; }
> > > public int getSeatPrice(){ return seatPrice; }
> > >
> > > public void setBookingNumber(int n){ bookingNumber = n; }
> > > public int getBookingNumber(){ return bookingNumber; }
> > >
> > > public void print() {
> > > System.out.println("Flight num
> : " +flightNum);
> > > System.out.println("\nLeaving
> : "+sourceAirport);
> > > System.out.println("\nArriving in
> :
> " +destAirport);
> > > System.out.println("\nDate
> : "+flightDate);
> > > System.out.println("\nAvailable seats
> : "+seatsAvailible);
> > > System.out.println( "\nSeat price
> : "+ seatPrice );
> > > System.out.println( "\nNo of seats
> requested
> : " +numberOfSeatsToBook
> > );
> > > System.out.println( "\nBooking no
> : "+bookingNumber );
> > > }
> > >
> > > public String toString(){
> > > StringBuffer sb = new StringBuffer();
> > > sb.append( "Flight num : " );
> > > sb.append( String.valueOf( flightNum ) );
> > > sb.append( "\nLeaving : " );
> > > sb.append( sourceAirport );
> > > sb.append( "\nArriving in : " );
> > > sb.append( destAirport );
> > > sb.append( "\nDate : " );
> > > sb.append( flightDate );
> > > sb.append( "\nAvailable seats: " );
> > > sb.append( String.valueOf( seatsAvailible ) );
> > > sb.append("\nSeat price : ");
> > > sb.append( String.valueOf( seatPrice ) );
> > > sb.append( "\nNo of seats requested : " );
> > > sb.append( numberOfSeatsToBook );
> > > sb.append( "\nBooking no : " );
> > > sb.append( String.valueOf(bookingNumber) );
> > > sb.trimToSize();
> > > return sb.toString();
> > > }
> > > }
> > >
> > > ...and the code for the DOM xml class is as follows, follwed by the xml
> > error
> > > class and the client code I'm using. This class is the crux of my problem
> I
> > > think, but it runs on its own fine.
> > >
> > > /*
> > > * Created on 10-5-2005
> > > */
> > >
> > > package flightCompany.xmlHelper;
> > >
> > > import org.w3c.dom.Document;
> > > import org.w3c.dom.Element;
> > > import org.w3c.dom.Node;
> > >
> > >
> > >
> > > import javax.xml.transform.dom.DOMSource;
> > > import javax.xml.parsers.DocumentBuilder;
> > > import javax.xml.parsers.DocumentBuilderFactory;
> > > import javax.xml.parsers.ParserConfigurationException;
> > > import javax.xml.transform.TransformerFactory;
> > > import javax.xml.transform.TransformerException;
> > > import javax.xml.transform.TransformerConfigurationException;
> > > import javax.xml.transform.Transformer;
> > > import javax.xml.transform.stream.StreamResult;
> > >
> > >
> > > import java.io.StringWriter;
> > > import java.util.Iterator;
> > > import java.util.LinkedList;
> > >
> > > import flightCompany.exceptions.XMLException;
> > > import flightCompany.model.*;
> > >
> > >
> > > /**
> > > * This helper provides XML & XML String object mapping the DAO methods
> > and
> > > the
> > > * database model to xml.
> > > * @author James Taylor
> > > * @version 1.2
> > > */
> > >
> > > public class DOMGetFlightsXMLImpl {
> > >
> > > private Document doc;
> > > private Element root;
> > >
> > >
> > > /**
> > > * Instantiate class members by creating a DOM document and a
> root tag
> > > element for it.
> > > * using a root tag.
> > > * @param rootTagName root tag for document
> > > * @throws throws XMLException
> > > */
> > > protected void createXMLDocument(String rootTagName) throws
> > > XMLException{
> > >
> > > DocumentBuilderFactory factory =
> > > DocumentBuilderFactory.newInstance();
> > > try {
> > > factory.setNamespaceAware(true);
> > > DocumentBuilder builder =
> factory.newDocumentBuilder();
> > > doc = builder.newDocument();
> > > root = doc.createElementNS("FlightList.xsd",
> rootTagName);
> > > //add root tag
> > > doc.appendChild(root);
> > > } catch (ParserConfigurationException e) {
> > > throw new XMLException("XMLExcepion in
> > > DOMGetFlightsXMLImpl.createXMLDocument() " + e.getMessage() );
> > > }
> > > }
> > >
> > > /*
> > > * Given a list of flight objects this returns a xml string
> > representation
> > > of
> > > them
> > > * @param flights list of flights to put in xml form
> > > * @throws XMLException
> > > */
> > > public String getFlightListAsXMLString(Iterator flights){
> > > try{
> > > System.out.println("============Getting XML
> > > String=====================");
> > > System.out.println("Creating xml dom doc");
> > > createXMLDocument("FlightList");
> > > }catch( XMLException xmle ){
> > > String result = "<Error> Error creating the xml
> document "+
> > > xmle.getMessage() +" </Error>";
> > > System.out.println( result);
> > > return result;
> > > }
> > > if (!flights.hasNext() )
> > > return "<Result> Couldn't find any flights to parse
> into
> > xml</Result>";
> > > try{
> > > System.out.println("about to head into loop to
> parse list");
> > > while (flights.hasNext()) {
> > > Flight f = (Flight)flights.next();
> > > addFlightNode(root, f);
> > > }
> > > System.out.println("left the loop");
> > > }catch( Exception e ){
> > > String result = "<Error> Error making adding
> nodes
> to the xml doc "+
> > > e.getMessage() +" </Error>";
> > > System.out.println( result);
> > > return result;
> > > }
> > > try{
> > > System.out.println("About to turn dom to string");
> > > return transformDOMtoString(doc);
> > > }catch( XMLException xmle ){
> > > String result = "<Error> Error making string
> representation on xml doc
> > "+
> > > xmle.getMessage() +" </Error>";
> > > System.out.println( result);
> > > return result;
> > > }
> > > }
> > >
> > > /**
> > > * Add XML data mapping from Flight objs to XML by populating
> the
> DOM
> > > document
> > > object
> > > * @param parent root tag
> > > * @param f flight object to be parsed to xml
> > > * @throws XMLException
> > > */
> > > protected void addFlightNode(Node parent, Flight f) throws
> XMLException{
> > > try{
> > > //add <Flight> element
> > > Element flElem = doc.createElement("Flight");
> > > parent.appendChild(flElem);
> > >
> > > // Make <FlightNum> element and add it
> > > Element elem = doc.createElement( "FlightNum" );
> > > elem.appendChild(doc.createTextNode( String.valueOf(
> > > f.getFlightNum() )
> > > ));
> > > flElem.appendChild(elem);
> > >
> > >
> > > // Make <SourceAirport> element and add it
> > > elem = doc.createElement("SourceAirport");
> > > elem.appendChild(doc.createTextNode( f.getSourceAirport()
> ));
> > > flElem.appendChild(elem);
> > >
> > > // Make <DestAirport> element and add it
> > > elem = doc.createElement( "DestAirport" );
> > > elem.appendChild(doc.createTextNode( f.getDestAirport()
> ));
> > > flElem.appendChild(elem);
> > >
> > > // Make <FlightDate> element and add it
> > > elem = doc.createElement( "FlightDate" );
> > > elem.appendChild(doc.createTextNode( f.getFlightDate()
> ));
> > > flElem.appendChild(elem);
> > >
> > > //Make <SeatsAvailible> element and add it
> > > elem = doc.createElement( "SeatsAvailible" );
> > > elem.appendChild(doc.createTextNode( String.valueOf(
> > > f.getSeatsAvailible() ) ));
> > > flElem.appendChild(elem);
> > >
> > > //Make <SeatsAvailible> element and add it
> > > elem = doc.createElement( "SeatPrice" );
> > > elem.appendChild(doc.createTextNode( String.valueOf(
> > > f.getSeatPrice() )
> > > ));
> > > flElem.appendChild(elem);
> > > }catch (Exception e) {
> > > throw new XMLException("XMLExcepion in
> > > DOMGetFlightsXMLImpl.addFlightNode() " + e.getMessage() );
> > > }
> > > }
> > >
> > >
> > >
> > > /**
> > > *
> > > * @param xDoc Dom document object to convert to a string
> > > * @return a string representation of a DOM document object
> > > * @throws XMLException
> > > */
> > > protected String transformDOMtoString(Document xDoc) throws
> XMLException{
> > > try {
> > > // Use a Transformer for String output
> > > TransformerFactory tFactory =
> TransformerFactory.newInstance();
> > > Transformer transformer = tFactory.newTransformer();
> > > DOMSource source = new DOMSource(xDoc);
> > > StringWriter sw = new StringWriter();
> > > transformer.transform(source, new StreamResult(sw));
> > > return sw.toString();
> > > }catch (TransformerConfigurationException tce) {
> > > throw new XMLException("XMLExcepion in
> > > DOMGetFlightsXMLImpl.transformDOMtoString() " +
> tce.getMessageAndLocation()
> > > );
> > > }catch (TransformerException te) {
> > > throw new XMLException("XMLExcepion in
> > > DOMGetFlightsXMLImpl.transformDOMtoString() " + te.getMessage() );
> > > }
> > > }
> > >
> > >
> > > /**
> > > * Just to test the imlementation
> > > */
> > > public static void main(String[] arg) {
> > > DOMGetFlightsXMLImpl helper = new
> DOMGetFlightsXMLImpl();
> > > try{
> > > LinkedList flights = new LinkedList();
> > > Flight f = new Flight();
> > > Flight fl = new Flight();
> > > flights.add( f );
> > > flights.add( fl );
> > > Iterator iter = flights.iterator();
> > > System.out.println(helper.getFlightListAsXMLString(iter)
> );
> > > }
> > > catch ( Exception saxe ){
> > > throw new XMLException("Error in parsing xml"+
> saxe.getMessage()
> > );
> > > }
> > > }
> > > }
> > >
> > > /*
> > > * Created on 15-05-2005
> > > */
> > >
> > >
> > > package flightCompany.exceptions;
> > >
> > > /**
> > > *
> > > * @author James Taylor
> > > * @version 1.1
> > > */
> > >
> > > public class XMLException extends RuntimeException {
> > >
> > > /**
> > > * Constructor
> > > * @param str a string that explains what the exception condition
> is
> > > */
> > > public XMLException (String str) {
> > > super(str);
> > > }
> > >
> > > /**
> > > * Default constructor. Takes no arguments
> > > */
> > > public XMLException () {
> > > super();
> > >
> > > }
> > >
> > > public String toString()
> > > {
> > > return "XMLException: "+super.toString();
> > > }
> > > }
> > >
> > >
> > > package flightCompany.rpcservice.client;
> > >
> > > import org.apache.axis.AxisFault;
> > > import java.net.URL;
> > >
> > > /**
> > > * A client that uses the Dynamic Proxy method to communicate with a Web
> > > service
> > > * using JAX-RPC.
> > > * @author James Taylor
> > > * @version 1.1
> > > */
> > >
> > > public class FlightCompanyClient {
> > >
> > > // helper class - To fetch the ACME Catalog information
> > >
> > > public String getFlightsFromWSService(String date) throws Exception {
> > > String REMOTE_ENDPOINT_URL =
> > > "http://localhost:7070/axis/services/flightservice";
> > > String namespace = "flightservice";
> > > String portName = "FlightInfoServiceIF";
> > > String servicename = "flightservice";
> > >
> > > //make a service
> > > FlightInfoServiceIFService service = new
> > > FlightInfoServiceIFServiceLocator();
> > > //get a stub to the service
> > > FlightInfoServiceIF flightSvc = service.getflightservice( new URL(
> > > REMOTE_ENDPOINT_URL ));
> > >
> > > //make a call
> > > return flightSvc.getFlights(date);
> > > }
> > >
> > > public static void main(String args[]) {
> > > try {
> > > String date = "2005-05-23";
> > > FlightCompanyClient fclient = new FlightCompanyClient();
> > > String flights = fclient.getFlightsFromWSService( date );
> > > System.out.println("Avasilable flights: " + flights);
> > > }
> > > catch( Exception e ) {
> > > if ( e instanceof AxisFault ) {
> > > System.err.println( ((AxisFault)e).dumpToString() );
> > > } else
> > > e.printStackTrace();
> > > }
> > > }
> > >
> > > }
> > >
> > > --
> > > Between the question and the answer lies free will
> > >
> >
>
>
>
--
Between the question and the answer lies free will