package oracle.otnsamples.soapheader.webservice;
import oracle.j2ee.ws.HeaderCallback;
import org.apache.soap.Header;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.util.Vector;
public class FlightBookingService implements HeaderCallback
{
String cardNumber; String expiryDate; String ffpNo; String fromCurrency; String toCurrency;
public FlightBookingService()
{}
public void processHeaders(Header header)
throws java.io.IOException, oracle.xml.parser.v2.XSLException
{
Vector entries = header.getHeaderEntries();
for (int a=0; a < entries.size(); a++ ){
Element e = (Element) entries.elementAt(a);
String tagName = e.getTagName();
if(tagName.equals("ExchangeRate"))
{
NodeList list = e.getElementsByTagName("FromCurrency");
Node fCurrency = list.item(0);
this.fromCurrency = fCurrency.getFirstChild().getNodeValue();
list = e.getElementsByTagName("ToCurrency");
Node tCurrency = list.item(0);
this.toCurrency = tCurrency.getFirstChild().getNodeValue();
}
else if(tagName.equals("CreditCard")){
NodeList list = e.getElementsByTagName("CardNumber");
Node card = list.item(0);
cardNumber = card.getFirstChild().getNodeValue();
list = e.getElementsByTagName("ExpiryDate");
Node expDate = list.item(0);
expiryDate = expDate.getFirstChild().getNodeValue();
}
else if(tagName.equals("ffpNumber")){
Node enode = e.getFirstChild();
ffpNo= enode.getNodeValue();
}
System.out.println("Processed the Header information");
}
}
public Integer bookTicket(BookingDetails details,double amount) throws Exception
{
Integer bookingID=null;
try{
BookingDataManager manager = new BookingDataManager (cardNumber,expiryDate,ffpNo);
int returnValue = manager.bookTicket(details,amount);
bookingID = new Integer(returnValue);
}
catch(Exception e)
{
e.printStackTrace();
throw new Exception(e.getMessage());
}
return bookingID;
}
public Float getExchangeRate()
{
Float rate=null ;
try{
CurrencyExchangeServiceStub stub = new CurrencyExchangeServiceStub();
rate = stub.getRate(this.fromCurrency, this.toCurrency);
}
catch(Exception e)
{
e.printStackTrace();
}
return rate;
}
}
|