An image base64de/en-code and xml

Hi all,
Im trying to save a image in xml not it's path or other stuff, just the hole immage, im doing this with this method: I use a bytearray(image) base64Encoder.toString(); then i save the output of it in to a XML file.
then i load the xml file at runtime, and start decoding it.
my question is: How can i get the decoded string into a bytearray and then convert it back to an immage?
with big regard,
Revlex

Whel now im keep getting this error: loader.loadBytes must be greater than 0
this is my code:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768">
<fx:Script>
    <![CDATA[
        import mx.utils.Base64Decoder;
        import mx.utils.Base64Encoder;
        import mx.utils.StringUtil;
        import mx.collections.XMLListCollection;
        import flashx.textLayout.tlf_internal;
        import mx.rpc.events.XMLLoadEvent;
        import mx.utils.XMLUtil;
        import flashx.textLayout.conversion.TextFilter;
        import mx.controls.Alert;
        import mx.utils.ObjectUtil;
        private var new_xml:XML = new XML();
        private var the_image:FileReference = new FileReference();
        private var the_image_2:FileReference = new FileReference();
        private var the_image_3:FileReference = new FileReference();
        private var the_image_4:FileReference = new FileReference();
        private var xml_savo:FileReference = new FileReference();
        private var xml_load:FileReference = new FileReference();
        private var filter:TextFilter = new TextFilter();
        private function load_xml(e:MouseEvent):void
            var xml_array:Array = [];
            xml_array.push(new FileFilter("xml", "*.xml;"));
            xml_load.browse(xml_array);
            xml_load.addEventListener(Event.SELECT, xml_loader);
        private function xml_loader(e:Event):void
            xml_load.load();
            xml_load.addEventListener(Event.COMPLETE, xml_open);
        private function xml_open(e:Event):void
            var le_text:String = xml_load.data.toString();
            var old_xml:XML = new XML(le_text);
            var bas64de:Base64Decoder = new Base64Decoder
            bas64de.decode(old_xml.elements("foto_1"));
            bas64de.toByteArray();
            tekst_stuk.text = old_xml.elements("tekst_stuk").toString();
            titel.text = old_xml.elements("titel").toString();
            var loader:Loader = new Loader();
            var byte:ByteArray = new ByteArray();
            byte = bas64de.toByteArray();
            loader.loadBytes(byte);
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderCompleteHandler);
        private function loaderCompleteHandler(event:Event):void
            var loader:Loader = event.target as Loader;
            var bmp:Bitmap = Bitmap(loader.content);
            img.source = bmp;
        private function xml_save(e:MouseEvent):void
            var bas64:Base64Encoder = new Base64Encoder();
            bas64.encode(the_image.data.toString());
            new_xml = <info>
                    <titel>
                        {titel.text}
                    </titel>
                    <tekst_stuk>
                    {tekst_stuk.text}
                    </tekst_stuk>
                    <foto_1>
                    {bas64}
                    </foto_1>
                    <foto_2>
                    {the_image_2.name}
                    </foto_2>
                    <foto_3>
                    {the_image_3.name}
                    </foto_3>
                    <foto_4>
                    {the_image_4.name}
                    </foto_4>
                </info>;
                new_xml.toXMLString();
                xml_savo.save(new_xml,titel.text+".xml");
        private function plaatje(e:MouseEvent):void
            var arr:Array = [];
            arr.push(new FileFilter("Images", ".jpeg;*.jpg;*.png"));
            the_image.browse(arr);
            the_image.addEventListener(Event.SELECT, selected);
        private function selected(E:Event):void
            the_image.load();
            the_image.addEventListener(Event.COMPLETE, image_done);
        private function image_done(E:Event):void
            img.source = the_image.data;
            this.removeElement(btn_1);
        //begin
        private function plaatje_2(e:MouseEvent):void
            var arr:Array = [];
            arr.push(new FileFilter("Images", ".jpeg;*.jpg;*.png"));
            the_image_2.browse(arr);
            the_image_2.addEventListener(Event.SELECT, selected_2);
        private function selected_2(E:Event):void
            the_image_2.load();
            the_image_2.addEventListener(Event.COMPLETE, image_done_2);
        private function image_done_2(E:Event):void
            img_2.source = the_image_2.data;
            this.removeElement(btn_2);
        //einde
                //begin
                private function plaatje_3(e:MouseEvent):void
            var arr:Array = [];
            arr.push(new FileFilter("Images", ".jpeg;*.jpg;*.png"));
            the_image_3.browse(arr);
            the_image_3.addEventListener(Event.SELECT, selected_3);
        private function selected_3(E:Event):void
            the_image_3.load();
            the_image_3.addEventListener(Event.COMPLETE, image_done_3);
        private function image_done_3(E:Event):void
            img_3.source = the_image_3.data;
            this.removeElement(btn_3);
        //einde
                //begin
        private function plaatje_4(e:MouseEvent):void
            var arr:Array = [];
            arr.push(new FileFilter("Images", ".jpeg;*.jpg;*.png"));
            the_image_4.browse(arr);
            the_image_4.addEventListener(Event.SELECT, selected_4);
        private function selected_4(E:Event):void
            the_image_4.load();
            the_image_4.addEventListener(Event.COMPLETE, image_done_4);
        private function image_done_4(E:Event):void
            img_4.source = the_image_4.data;
            this.removeElement(btn_4);
    ]]>
</fx:Script>
<mx:ControlBar>
    <s:Button label="Load" id="load" enabled="true" click="load_xml(event);"/>
    <s:Button label="Save" enabled="true" id="save_xml" click="xml_save(event);"/>
</mx:ControlBar>
    <mx:Image x="22" y="113" id="img" width="300" height="200"/>
    <s:TextInput x="25" y="60" id="titel" text="Titel" enabled="true"/>
    <s:TextArea x="25" y="360" editable="true" enabled="true" id="tekst_stuk" width="550"/>
    <s:Button label="Picture 1" id="btn_1" enabled="true" click="plaatje(event);" x="135" y="205"/>
    <mx:Image x="440" y="110" width="100" height="50" id="img_2"/>
    <mx:Image x="440" y="180" width="100" height="50" id="img_3"/>
    <mx:Image x="440" y="250" width="100" height="50" id="img_4"/>
    <s:Button x="455" y="127" label="Picture 2" id="btn_2" enabled="true" click="plaatje_2(event);"/>
    <s:Button x="455" y="198" label="Picture 3" id="btn_3" enabled="true" click="plaatje_3(event);"/>
    <s:Button x="455" y="266" label="Picture 4" id="btn_4" enabled="true" click="plaatje_4(event);"/>   
</s:Application>

Similar Messages

  • File Reference and XML

    Hey everyone, i've been working on an mp3 player that runs
    off of xml i have it set up so that for each instance of a song it
    attaches movie clips onto the stage that serves as buttons. I'm
    trying to add a download button so when you click it it will
    download the file. I'm trying to do this with the file reference
    class but i've been working on it for a week with no luck what so
    ever. if anyone has any ideas it would be so greatly appreciated
    heres my code and xml.
    there may be some unnecessary code in there i was messing
    around trying different things.

    Sorry if it wasnt clear. But to be completely truthful i'm
    not sure what it is thats not working. I'm trying to populate the
    file reference by the xml. everything works except when i test the
    movie online when i click the download button the save file opens
    but it says undefined and clicking save does absolutely nothing.
    So my guess is that my problem lies in my file reference to
    the button.
    this part
    var url:String = "_global.download
    _root["downloadbut"+i].onRelease = function() {
    if(!theFileRef.download(url,_global.songname.mp3)) {
    trace("dialog box failed to open.");
    } else {
    trace("dialog box has open.");
    trace(_global.songname
    i was hoping to know if anyone knew how to properly populate
    the file reference with xml.
    Sorry. Hope that is more clear.

  • Exist an easy way to convert base64 code in XML files into the original image file on forms

    I've made a form in lifecycle that will be distributed by email as a pdf, and submitted back to me as an XML file and then that data imported into the pdf form template to view the data. Issue is I have an "attach image" field on the form and in XML it gets written to a base64 encoded format. Is there convenient way to extract this code from the XML file so that I would have a workable jpeg image file that I can save and open in other apps? Thank you in advance!  -Robert Tampa

    I tried to make John Brinkman's sample working in reverse.
    This script will grab an image field's value and produce an attachment (png-file), which then can be saved to the hard drive.
    //Get Base64 data of the image field
    var b64Data = ImageField1.value.image.value;
    //Convert to a read stream
    var ReadStream = util.streamFromString(b64Data);
    //Decode from Base64
    var DecodedStream = Net.streamDecode(ReadStream, "base64");
    //Attach an empty image file
    event.target.createDataObject("MyExportImage.png", "", "image/png");
    //Update attached image file with stream data
    event.target.setDataObjectContents("MyExportImage.png", DecodedStream);
    //Show attachment pane
    event.target.viewState = {overViewMode:7};
    This works so far, but the produced images are always cutted off.
    No idea what's the reason for this behavior.

  • How to retreive images and xml stored in temporary internet files

    hi all,
                  I am creating an air application that has to work in offline too.so i have decided to retrieve datas it from temporary internet files(is it a rightway or anyother way to do that if so pls suggest).   I have an issues of retreiving images and xml stored in the temporary internet files of the user system ..can anybody help me and give solution for this..
    regards,
    Divya.

    What software are you using to create the website? Perhaps there is some command you can implement on the website to force the entire file to be downloaded. If you use Dreamweaver, you might ask in that forum. If you make the link an ftp link rather than a http link, you might guarantee that the file will be downloaded in its entirety, but the download location will not necessarily be in a temp folder.

  • Need to get rid of flicker in between image displays--the PC in which LabVIEW 8.2 is installed is routing images via LaVIEW code & 'extended desktop' to typical visual projector and between each image display is a flicker--that we need to remove

    Need to get rid of flicker in between image displays--the PC on which LabVIEW 8.2 is installed is routing images via LabVIEW code & 'extended desktop' to a typical visual projector and between each image display is a flicker--that we need to remove
    Attachments:
    Get JPEG Files in the folder.vi ‏13 KB
    Display image on the screen.vi ‏34 KB
    Create image file path.vi ‏12 KB

    In response to below------Thank you Lynn-----Yes, there is a main panel--I will attach----and if you have any further suggestions please let me know--Thanks again
    How are you running this program? Is there a top level vi which calls the ones you posted? The Display image on screen.vi will display two images in succession, but according to the note on the block diagram the second image is blank. It seems as though this would intentionally create a flicker.
    The sequence structure is unnecessary. Dataflow will determine the order of execution. The only exception is the time delay in the third frame. Since it has no data dependency, a single frame sequence may be useful to assure that the delay occurs before the picture is updated. A simple state machine might be a more versatile architecture for what you may be trying to do.
    It is not necessary to write the FR.PanelBounds property immediately after reading it, nor is it necessary to read it a second time in the second frame. Just wire from the first read.
    Lynn
    Attachments:
    Main Front Panel with Rendv Final Nov 6 with pause.vi ‏755 KB

  • Import code coloring xml and code snippets into dreamweaver cc 2014

    How do I import my code coloring xml file and code snippets from the earlier version of dreamweaver into cc 2014?

    Thanks, Preran. After uninstalling the 2014.1 update and reinstalling the previous version, I now installed the 2014.1 update again. Instead of jumping straight into restoring the preferences, I decided to test it out as-is, and it worked! No problems with pasting after opening any of my five browsers. I wonder what may have gone wrong the first time...or what was corrected during the uninstall/reinstall process. In any case, it is working again now and I am grateful. Thanks!

  • For loop and xml - how to point the right content in a XML file with a dynamically created button?

    Hi Everybody,
    as my first experience in AS3 I'm bulding a photo multigallery. In that gallery I have some buttons, each one pointing to its respective set of images.
    Each button is created with the for loop, that picks the information from a XML file. From this XML I get the text of the button, the position etc. What I did with some sucess. But there is a scary problem: I don't know how to make each button load the respective and unique set of images.
    I've tryied several different methods, with no effect, to make each loop to give to each button an unique identity to load the respective set of images.
    I imagine that the solution pass by the use of arrays. I wrote some code, and I guess that I'm almost there (but not sure). Here is my AS3 code until now:
    // CREATE MENU CONTAINER //
    var menuContainer:MovieClip = new MovieClip();
    menuContainer.x=10;
    menuContainer.y=300;
    addChild(menuContainer);
    // CREATE IMAGES CONTAINER //
    var imagesContainer:MovieClip = new MovieClip();
    imagesContainer.x=10;
    imagesContainer.y=10;
    addChild(imagesContainer);
    //// LOAD XML ////
    var xmlLoader:URLLoader = new URLLoader();
    xmlLoader.addEventListener(Event.COMPLETE, whenLoaded);
    xmlLoader.load(new URLRequest("XML/roiaXML.xml"));
    var xml:XML;
    function whenLoaded(evt:Event):void {
         xml=new XML(evt.target.data);
         var mySetsList:XMLList=xml.children();
         //// MENU BUTTONS ////
         // CREATE ARRAYS //
         var totalArray:Array = new Array();
         var setNodesArray:Array = new Array();
         var setNamesArray:Array = new Array();
         // POSITIONING BUTTONS INSIDE MENU CONTAINER//
         var rowsQuantity:Number=3;
         var columnsQuantity:Number=Math.ceil(mySetsList.length()/rowsQuantity);
         var cellWidth:Number=160;
         // CREATE BUTTONS //
         for (var i:int=0; i< mySetsList.length(); i++) {
              var newSetButtonMC:setButtonMC=new setButtonMC();
              //what do I do here to make it works? To give each button created a unique id.
              setNodesArray.push(i);
              //trace(setNodesArray);
              var imageNodesArray:Array = new Array();
              for (var j:int=0; j<mySetsList[i].IMAGE.length(); j++) {
                   imageNodesArray.push(mySetsList[i].IMAGE[j].attribute("imageTitle"));
              totalArray.push(imageNodesArray);
              newSetButtonMC.setButtonText.text=mySetsList.attribute("galeriaTitle")[i];
              newSetButtonMC.setButtonText.autoSize=TextFieldAutoSize.LEFT;
              var cellX:Number=Math.floor(i/rowsQuantity);
              var cellY:Number=i%rowsQuantity;
              newSetButtonMC.x=cellX*cellWidth;
              newSetButtonMC.y=cellY*(newSetButtonMC.height+10);
              newSetButtonMC.addEventListener(MouseEvent.CLICK, onClick);
              menuContainer.addChild(newSetButtonMC);
         totalArray.push(setNodesArray);
         //// MENU BUTTONS ACTIONS ////
         function onClick(mevt:MouseEvent):void {
              trace(totalArray [0][0]);
              trace(totalArray [0][0]);
              // in the line above I achieved some success loading a specific info from XML.
              // but I don't know what to do with it.
              //what do I do here? To make each button to load its own node from XML.
    Here is my XML:
    <GALERIA galeriaTitle="galeria 01">
      <IMAGE imageTitle="imageTitle01">feio.jpg</IMAGE>
      <IMAGE imageTitle="imageTitle02">muitofeio.jpg</IMAGE>
      <IMAGE imageTitle="imageTitle03">aindamaisfeio.jpg</IMAGE>
    </GALERIA>
    <GALERIA galeriaTitle="galeria 02">
      <IMAGE imageTitle="imageTitle01">estranho.jpg</IMAGE>
      <IMAGE imageTitle="imageTitle02">maisestranho.jpg</IMAGE>
      <IMAGE imageTitle="imageTitle03">aindamaisestranho.jpg</IMAGE>
    </GALERIA>
    Thanks everyone . ABSTRATO

    you can assign each newSetButtonMC and ivar property that points to its i value or, even easier:
    // CREATE MENU CONTAINER //
    var menuContainer:MovieClip = new MovieClip();
    menuContainer.x=10;
    menuContainer.y=300;
    addChild(menuContainer);
    // CREATE IMAGES CONTAINER //
    var imagesContainer:MovieClip = new MovieClip();
    imagesContainer.x=10;
    imagesContainer.y=10;
    addChild(imagesContainer);
    //// LOAD XML ////
    var xmlLoader:URLLoader = new URLLoader();
    xmlLoader.addEventListener(Event.COMPLETE, whenLoaded);
    xmlLoader.load(new URLRequest("XML/roiaXML.xml"));
    var xml:XML;
    function whenLoaded(evt:Event):void {
         xml=new XML(evt.target.data);
         var mySetsList:XMLList=xml.children();
         //// MENU BUTTONS ////
         // CREATE ARRAYS //
         var totalArray:Array = new Array();
         var setNodesArray:Array = new Array();
         var setNamesArray:Array = new Array();
         // POSITIONING BUTTONS INSIDE MENU CONTAINER//
         var rowsQuantity:Number=3;
         var columnsQuantity:Number=Math.ceil(mySetsList.length()/rowsQuantity);
         var cellWidth:Number=160;
         // CREATE BUTTONS //
         for (var i:int=0; i< mySetsList.length(); i++) {
              var newSetButtonMC:setButtonMC=new setButtonMC();
              //what do I do here to make it works? To give each button created a unique id.
              setNodesArray.push(i);
              //trace(setNodesArray);
              var imageNodesArray:Array = new Array();
              for (var j:int=0; j<mySetsList[i].IMAGE.length(); j++) {
                   imageNodesArray.push(mySetsList[i].IMAGE[j].attribute("imageTitle"));
             nextSetButtonMC.imageArray = imageNodesArray;
              //totalArray.push(imageNodesArray);
              newSetButtonMC.setButtonText.text=mySetsList.attribute("galeriaTitle")[i];
              newSetButtonMC.setButtonText.autoSize=TextFieldAutoSize.LEFT;
              var cellX:Number=Math.floor(i/rowsQuantity);
              var cellY:Number=i%rowsQuantity;
              newSetButtonMC.x=cellX*cellWidth;
              newSetButtonMC.y=cellY*(newSetButtonMC.height+10);
              newSetButtonMC.addEventListener(MouseEvent.CLICK, onClick);
              menuContainer.addChild(newSetButtonMC);
         totalArray.push(setNodesArray);
         //// MENU BUTTONS ACTIONS ////
         function onClick(mevt:MouseEvent):void {
              var mc:setButtonMC=setButtonMC(mevt.currentTarget);
    for(i=0;i<mc.imageArray.length;i++){
    trace(mc.imageArray[i]);
    Here is my XML:
    <GALERIA galeriaTitle="galeria 01">
      <IMAGE imageTitle="imageTitle01">feio.jpg</IMAGE>
      <IMAGE imageTitle="imageTitle02">muitofeio.jpg</IMAGE>
      <IMAGE imageTitle="imageTitle03">aindamaisfeio.jpg</IMAGE>
    </GALERIA>
    <GALERIA galeriaTitle="galeria 02">
      <IMAGE imageTitle="imageTitle01">estranho.jpg</IMAGE>
      <IMAGE imageTitle="imageTitle02">maisestranho.jpg</IMAGE>
      <IMAGE imageTitle="imageTitle03">aindamaisestranho.jpg</IMAGE>
    </GALERIA>
    Thanks everyone . ABSTRATO

  • Insert a Picture into the Picture/Image Content Control using Open XML SDK 2.0

    I have created a word template as follows
    Here PizzaPicture is a Picture Content Control, PizzaName is a Plain Text Content Control and PizzaDescription is a Rich Text Content Control
    I am able to assign text to PizzaName and PizzaDescription Easily but not able to even locate the PizzaPicture. Here is my code
    using (WordprocessingDocument document = WordprocessingDocument.Open(@".\test.docx", true)) {
    MainDocumentPart mainPart = document.MainDocumentPart;
    DocumentFormat.OpenXml.Wordprocessing.Text text = null;
    SdtContentBlock pizzaNameBlock = null;
    SdtContentBlock pizzaDescriptionBlock = null;
    //SdtContentBlock pizzaPictureBlock = null;
    List<SdtBlock> sdtList = mainPart.Document.Descendants<SdtBlock>().ToList();
    foreach (SdtBlock sdt in sdtList)
    Console.WriteLine(sdt.SdtProperties.GetFirstChild<Tag>().Val.Value);
    SdtBlock s1 = mainPart.Document.Body.Descendants<SdtBlock>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "PizzaName").Single();
    SdtBlock s2 = mainPart.Document.Body.Descendants<SdtBlock>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == "PizzaDescription").Single();
    SdtBlock s3 = mainPart.Document.Body.Descendants<SdtBlock>().FirstOrDefault(r =>
    SdtProperties p = r.Elements<SdtProperties>().FirstOrDefault();
    if (p != null)
    Console.WriteLine("P is not null");
    // Is it a picture content control?
    SdtContentPicture pict =
    p.Elements<SdtContentPicture>().FirstOrDefault();
    if (pict != null) Console.WriteLine("Pict is not null");
    // Get the alias.
    SdtAlias a = p.Elements<SdtAlias>().FirstOrDefault();
    if (pict != null && a.Val == "PizzaPicture")
    return true;
    return false;
    if (s3 == null) {
    Console.Write(" s3 is Null");
    } else {
    Console.WriteLine("s3 not null");
    if (s1 != null) {
    pizzaNameBlock = s1.Descendants<SdtContentBlock>().FirstOrDefault();
    text = pizzaNameBlock.Descendants<DocumentFormat.OpenXml.Wordprocessing.Text>().FirstOrDefault();
    // here you can set the current time
    text.Text = "Peperoni";
    Console.WriteLine(text.Text);
    string embed = null;
    if (s3 != null)
    Drawing dr = s3.Descendants<Drawing>().FirstOrDefault();
    if (dr != null)
    Blip blip = dr.Descendants<Blip>().FirstOrDefault();
    if (blip != null)
    embed = blip.Embed;
    if (embed != null)
    IdPartPair idpp = document.MainDocumentPart.Parts
    .Where(pa => pa.RelationshipId == embed).FirstOrDefault();
    if (idpp != null)
    ImagePart ip = (ImagePart)idpp.OpenXmlPart;
    using (FileStream fileStream =
    File.Open(@"c:\temp\pepperoni.jpg", FileMode.Open))
    ip.FeedData(fileStream);
    if (s2 != null) {
    pizzaDescriptionBlock = s2.Descendants<SdtContentBlock>().FirstOrDefault();
    string altChunkId = "AltChunkId12345";
    AlternativeFormatImportPart chunk = mainPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.Xhtml, altChunkId);
    chunk.FeedData(File.Open(@".\html.txt", FileMode.Open));
    AltChunk altChunk = new AltChunk();
    altChunk.Id = altChunkId;
    ////Replace content control with altChunk information
    OpenXmlElement parent = pizzaDescriptionBlock.Parent;
    parent.InsertAfter(altChunk, pizzaDescriptionBlock);
    pizzaDescriptionBlock.Remove();
    mainPart.Document.Save();
    document.Close();
    Here the call mainPart.Document.Descendants<SdtBlock>().ToList(); returns me only 2 items PizzaName, PizzaDescription but
    no PizzaPicture.
    Secondly the line   SdtContentPicture pict =  p.Elements<SdtContentPicture>().FirstOrDefault();
    returns NULL. So it seems that there is no element of type SdtContentPicture.
    What am I doing wrong? I am pretty sure that I have put PizzaPicture as a Picture content control.
    My objective is to locate this control in the document and then insert an image into it programmatically.
    MSDNStudent Knows not much!

    Hi,
    I'm running some test on your code, and I'll come back as soon as I get some update. But before that, I would recommend you to bind customXMLPart with the content controls via Content Control Tool Kit,
    which enables us to bind customXMLPart with CC by dragging and dropping.
    After binding, you can change contents of the template via OpenXML SDK easily as the following code:
    private void button1_Click(object sender, EventArgs e)
    string fileName = @"C:\CCTest.docx";
    WordprocessingDocument wordDoc = WordprocessingDocument.Open(fileName, true);
    MainDocumentPart mainPart = wordDoc.MainDocumentPart;
    CustomXmlPart customPart = mainPart.CustomXmlParts.FirstOrDefault();
    //convert image into string
    string picName = @"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg";
    System.IO.FileStream fileStream = System.IO.File.Open(picName, System.IO.FileMode.Open);
    System.IO.BinaryReader br = new System.IO.BinaryReader(fileStream);
    byte[] byteArea;
    byteArea = br.ReadBytes(System.Convert.ToInt32(fileStream.Length));
    string picString = System.Convert.ToBase64String(byteArea);
    //Load the XML template
    string DataString = Properties.Resources.XMLData;
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.LoadXml(DataString);
    //change the value
    XmlNodeList xmlNode = xmlDoc.GetElementsByTagName("pizzaPic");
    xmlNode[0].InnerText = picString;
    xmlNode = xmlDoc.GetElementsByTagName("pizzaName");
    xmlNode[0].InnerText = "Pizza Name";
    xmlNode = xmlDoc.GetElementsByTagName("pizzaDescription");
    xmlNode[0].InnerText = "Pizza Description";
    //write the custom xml data into the customxmlpart
    System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(customPart.GetStream(System.IO.FileMode.Create), System.Text.Encoding.UTF8);
    writer.WriteRaw(xmlDoc.InnerXml);
    writer.Flush();
    writer.Close();
    fileStream.Close();
    br.Close();
    mainPart.Document.Save();
    wordDoc.Close();
    and the XML template of the project would something like:
    <?xml version="1.0"?>
    <Pizza xmlns="http://Test/ContentControls/Pizzas">
    <pizzaPic></pizzaPic>
    <pizzaName></pizzaName>
    <pizzaDescription></pizzaDescription>
    </Pizza>
    I hope this helps.
    Calvin Gao[MSFT]
    MSDN Community Support | Feedback to us

  • Edit RSS and .xml in iweb on .mac

    I am desperately trying to find out how to edit my RSS and (.xml) file in iweb. I can get to the file if I publish my website to a folderr on my MAC, but this doesn't help me. I need to edit this file and let iweb publish it on my .mac podcast site.
    The real issue is that in itunes the wrong image is appearing (it is by default using my background image from my podcast website) AND also I am not able to give a "summary" in the podcast description area.
    I'm really frustrated that I can not see the .xml file directly in iweb and also that the RSS inspector editor in iweb does not allow you to edit all parts of your .xml file!
    Can anybody help?
    Thanks!!!
    http://web.mac.com/stl_ocds/iWeb
    http://web.mac.com/stl_ocds/iWeb/Meditations%20from%20Carmel/Meditations%20from% 20Carmel%20Podcast/Meditations%20from%20Carmel%20Podcast.html
    iMac   Mac OS X (10.4.6)  

    I have put together a website that I'm trying to manage daily. I'm creating in in iweb, then saving it to a folder and uploading using FTP (Fetch). So the problem I'm running into is that my server seems to be choking on the following like of XML code every time. For me this is a bummer because I'm not a code person and so it means relying on others to scrub the code out each time. How can I use iweb and avoid this problem.
    here is the head of a typical html file generated by the sw.
    the first line is choking the server.
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head><meta http-equiv="Content-Type" content="text/html;
    charset=UTF-8" />
    <meta name="Generator" content="iWeb 1.1.2" />
    <title>About Me</title>
    <link rel="stylesheet" type="text/css" media="screen"
    href="About%20Me_files/About%20Me.css" /><script type="text/javascript"
    src="About%20Me_files/About%20Me.js"></script>
    </head>

  • Help Again Please Link code in XML

    Hello again everybody, from Sunny Bali.
    I got over my last problem with your help,, thanks very much for that.
    I have a new question which I hope can be answered, I don't know if what I am trying to do is possible but I want to give it a try. Again apologies for not being able to provide a link to the site,, still not have one,, and again apologies for my still training,, I hope the answer if any isn't too technical.
    I have set up a dataset on my page (lets call it ds1) I have a bit in the lists called "button" which displays a button image
    so the code looks like this, that all works dandy.
    <Rental>
    <house>
    <button>./Buttons/more.png</buttons>
    </house>
    <house>
    <button>./Buttons/more.png</buttons>
    </house>
    </Rental>
    What I would like to do is to put a link to different page on my site, from each section  button, ,, so for example the first section needs code to link to a page1 on my site,, and the second section button needs code to link to a page2 on my site,, etc
    Is such a thing possible ? and if so,, what is the code I should enter ? ... I have tried searching the forum's and other places to try and find the solution before bothering you guys,, but have finally given up,, can't find it anywhare,,, so please can someone help me like you did before... Thanks in Advance.

    Thank you once again for the swif reply.. I have't been able to make it work,,
    here is a snippit of what I have done,, (hope I interpreted the instructions right
    The XML bit
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <HouseRentals>
    <House>
    <Area>Kuta</Area>
    <Size>Land Size 2 ARE (approx 400sq mtr)</Size>
    <Rooms>2 Bathrooms, Living Area, Dining Area, Laundry Room</Rooms>
    <Location>Near Sunset Road Seminyak</Location>
    <Parking>Secured Parking</Parking>
    <Electric>2600W Electric Supply</Electric>
    <Water>Town Water Suppy</Water>
    <Fixtures>Fixtures include: Air-Con,Kitchen, Western Toilet</Fixtures>
    <Phone>Phone Line Available</Phone>
    <Furnished>Part Furnished</Furnished>
    <ShorttermAus><![CDATA[<p>300$</p>per month]]></ShorttermAus>
    <MediumTermAus><![CDATA[<p>250$</p>per month-X-term length]]></MediumTermAus>
    <LongTermAus><![CDATA[200$ per year]]></LongTermAus>
    <SaleAus><![CDATA[N/A]]></SaleAus>
    <ShortTermUSA><![CDATA[350]]></ShortTermUSA>
    <MediumTermUSA><![CDATA[300]]></MediumTermUSA>
    <LongTermUSA><![CDATA[250]]></LongTermUSA>
    <SaleUSA><![CDATA[N/A]]></SaleUSA>
    <ShortTermRP><![CDATA[3,000,000]]></ShortTermRP>
    <MediumTermRp><![CDATA[2,500,000]]></MediumTermRp>
    <LongTermRp><![CDATA[2,000,000]]></LongTermRp>
    <SaleRp><![CDATA[N/A]]></SaleRp>
    <desc><![CDATA[A wonderful quiet location somewhere in Bali, recently renovated ]]></desc>
    <ReferenceNumber><![CDATA[Ref No:-BSR-HSTH-052011001 ]]></ReferenceNumber>
    <descheader><![CDATA[]]></descheader>
    <Type>2 Bed Town House</Type>
    <Situation></Situation>
    <Image>./Pictures/Pictureshouse.jpg</Image>
    <Image1></Image1>
    <Image1Desc></Image1Desc>
    <Image2></Image2>
    <Image2Desc></Image2Desc>
    <Image3></Image3>
    <Image3Desc></Image3Desc>
    <Image4></Image4>
    <Image4Desc>http://balidiscovery.com</Image4Desc>
    <button>./Buttons/more.png</button>
    </House>
    The HTML bit
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:spry="http://ns.adobe.com/spry">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Bali Smart Rentals The Smart Way In Bali</title>
    <style type="text/css">
    </script>
    <script src="SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
    <script src="SpryAssets/xpath.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryData.js" type="text/javascript"></script>
    <script src="SpryAssets/SpryXML.js" type="text/javascript"></script>
    <style type="text/css">
    var ds1 = new Spry.Data.XMLDataSet("Datasets/House Rentals.xml", "HouseRentals/House");
    ds1.setColumnType("Area", "html");
    ds1.setColumnType("Size", "html");
    ds1.setColumnType("Rooms", "html");
    ds1.setColumnType("Location", "html");
    ds1.setColumnType("Parking", "html");
    ds1.setColumnType("Electric", "html");
    ds1.setColumnType("Water", "html");
    ds1.setColumnType("Fixtures", "html");
    ds1.setColumnType("Phone", "html");
    ds1.setColumnType("Furnished", "html");
    ds1.setColumnType("ShorttermAus", "html");
    ds1.setColumnType("MediumTermAus", "html");
    ds1.setColumnType("LongTermAus", "html");
    ds1.setColumnType("SaleAus", "html");
    ds1.setColumnType("ShortTermUSA", "html");
    ds1.setColumnType("MediumTermUSA", "html");
    ds1.setColumnType("LongTermUSA", "html");
    ds1.setColumnType("SaleUSA", "html");
    ds1.setColumnType("ShortTermRP", "html");
    ds1.setColumnType("MediumTermRp", "html");
    ds1.setColumnType("LongTermRp", "html");
    ds1.setColumnType("SaleRp", "html");
    ds1.setColumnType("desc", "html");
    ds1.setColumnType("ReferenceNumber", "html");
    ds1.setColumnType("descheader", "html");
    ds1.setColumnType("Type", "html");
    ds1.setColumnType("Situation", "html");
    ds1.setColumnType("Image1Desc", "html");
    ds1.setColumnType("Image2Desc", "html");
    ds1.setColumnType("Image3Desc", "html");
    ds1.setColumnType("Image4Desc", "html");
    ds1.setColumnType("button", "html");
    </script>
    <td><div class="MasterDetail">
                                      <div spry:region="ds1" class="MasterContainer">
                                        <div class="MasterColumn" spry:repeat="ds1" spry:setrow="ds1" spry:hover="MasterColumnHover" spry:select="MasterColumnSelected">{Area}...{Type}</div>
                                      </div>
                                      <div spry:detailregion="ds1" class="DetailContainer">
    This next bit is inside a table but there is a lot of otherstuf don't need to include here
    <th height="30" colspan="4" align="left" valign="top" bgcolor="#CCFF66" scope="row">Interested In Seeing More Details ? click here &gt;&gt;&gt;&gt;</th>
                                                      <th height="30" align="center" valign="top" bgcolor="#CCFF66" scope="row"><a href="{Image4Desc}"></a><img src="{button}"alt="" name="button" width="61" height="32" id="button" /></th>
    I get the button image ok,, but no link
    I just know it's something simple that I haven't done,, or cannot see.
    Thanks for assistance
    Message was edited by: BaliWayan

  • Jasper report on HTML when one image loaded from database and for the other

    How to generate jasper report on HTML when one image loaded from database and for the other we give a image path
    My code
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
              exporter = new JRHtmlExporter();
              exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
              exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos);
              exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, strImageInputDirectory);
         exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR_NAME, strImageOutputPath == null ? "." : strImageOutputPath);
         exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR, Boolean.TRUE);
         exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, Boolean.FALSE);
         exporter.setParameter(JRHtmlExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE);
              exporter.exportReport();
              byte[] bdata = ((ByteArrayOutputStream) baos).toByteArray();
    Can any one help pls
    Message was edited by:
    ameet.au

    hey sorry for posting it in this forum.
    but do u have sample code for making it work.. since i am able to do it on PDF format(image from Database and another stored in the webserver) using
    byte image[] =(byte[]) outData.get("image");
                        ByteArrayInputStream img = new ByteArrayInputStream(image);
                        hmimg.put("P_PARAMV3", img);
    print = JasperFillManager.fillReport(reportFileName, hmimg, jrxmlds);
    bdata= JasperExportManager.exportReportToPdf(print);

  • How do i add images in the header and footer to a PDF using iText

    Hi ,
    I want to add images to the header and footer of every page while i am genrating a pdf i have created a separate class called EndPage which i am instanceiating its default constructor in another class 's button action method.
    The above code genrates a PDF for me however it genrates a file with file size zero bytes and does not open it following is my sample code
    //**********Any Help would be appreciated
    Thank You
    public class My_Class
    public String pdf_action()
    EndPage ep=new EndPage();
    return null;
    }//My_class Ends
    class EndPage extends PdfPageEventHelper
    * Demonstrates the use of PageEvents.
    * @param args no arguments needed
    public EndPage()
    try {
    com.lowagie.text.Document document = new Document(PageSize.A4, 50, 50, 70, 70);
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("D://proposals/endpage.pdf"));
    writer.setPageEvent(new EndPage());
    document.open();
    String text = "Lots of text. ";
    for (int k = 0; k < 10; ++k)
    text += text;
    document.add(new Paragraph(text));
    document.close();
    catch (Exception de) {
    de.printStackTrace();
    public void onEndPage(PdfWriter writer, Document document) {
    try {
    Rectangle page = document.getPageSize();
    PdfPTable head = new PdfPTable(3);
    for (int k = 1; k <= 6; ++k)
    head.addCell("head " + k);
    head.setTotalWidth(page.width() - document.leftMargin() - document.rightMargin());
    head.writeSelectedRows(0, -1, document.leftMargin(), page.height() - document.topMargin() + head.getTotalHeight(),
    writer.getDirectContent());
    PdfPTable foot = new PdfPTable(3);
    for (int k = 1; k <= 6; ++k)
    foot.addCell("foot " + k);
    foot.setTotalWidth(page.width() - document.leftMargin() - document.rightMargin());
    foot.writeSelectedRows(0, -1, document.leftMargin(), document.bottomMargin(),
    writer.getDirectContent());
    catch (Exception e) {
    throw new ExceptionConverter(e);
    }

    Hi,
    Thanks for the quick response.
    The problem is that when I keep the logo as a watermark, the pdf is not adjusting itself to include the logo as header.
    But if I add a header text via Tools -> Headers and Footers, the pdf is adjusting itself so that the header text is at the beginning , not overlapping with the contents of pdf.
    But while using logo as watermark, some times overlapping of the pdf contents and logo is happening.
    Is there any way to add a logo in the Header and Footer via the option in Tools -> Headers and Footers
    Thanks,
    Vidhya

  • Sample JAVA Mobile Server Publish code, and technical questions

    Dear Oracle technical representative, or user:
    I need to programmatically create, and remove publications using the pure JAVA classes of Consolidator, ConsolidatorManager, and ResourceManager for the Mobile Server in OracleLite 9i Release 5.0.1. On the creation side I have managed to get the example found in the directory OraLite501\Mobile\Server\Sample\Sample11 functioning using my installation parameters. I had a very difficult time of it because (1) the sample11 code fails to open an jdbc connection to the Mobile Server Repository Schema with the function Consolidator.OpenConnection, and (2) the ResourceManager function openConnection will not work unless the Webtogo.ora file is in the current working directory. The ConsolidatorManager function OpenConnection may also not work unless the Webtogo.ora file is in the current working directory, but I did test the hypothesis. Both of these problems need to be addressed in the sample11 code, and documentation to save other software developers from wasting hours of their valuable time. See line 223, 386, and 448 in the Publish.Java code that follows this problem description.
    With the above two problems resolved, I can now programmatically create publications, but no hints on how to programmatically remove a publication exist in the documentation. The application I am developing will require the dynamic creation, and removal of publications. Also, when developing applications the complete removal of a publication is absolutely necessary when you have botched a publication. Thus my first question is What sequence of ResourceManager, and ConsolidatorManager function calls will completely remove a Publication?.
    I also have two issues remaining with the code that I have so far developed. These issues will most likely be resolved, when I obtain instructions on how to completely remove a publication, and associated users. But, perhaps not. Referencing the Publish.java file that follows this problem description,
         1. The ResourceManager function dropUser does not drop a user. See my comments, and code beginning at line 277 in Publish.java. Do I need to de-instantiate all subscriptions, and unsubscribe all subscription users before calling this function.? I think, I tried the de-instantiate, unsubscribe sequence without success, but in the confusion I may not have made the try.
         2. How do I get rid of an index created with the ConsolidatorManager function DropPublicationItemIndex?. My comments on this problem begin at line 522 in Publish.java. For some reason the DropPublicationItemIndex function call made below line 448 does not work. What function calls are required prior to calling the DropPublicationItemIndex function?
    Throughout the Publish.java code, I have made comments about some of the problems that I have had in getting the sample11 code working for my installation parameters. I think these comments should help the programmers maintaining the ResourceManager, and ConsolidatorManager code improve the stability of the programs. Please pass these comments, and attached files to the appropriate individuals,
    if you are in a position to do so.
    The other files that follow the Publish.java code are
         1. Compile.bat - Compiles Publish.java using j2sdk1.4.0.
         2. Run.bat - Executes Publish using \ j2sdk1.4.0\jre\server\jvm.dll.
         3. Webtogo.ora
         4. tnsnames.ora for the Mobile Server.
         5. tnsnames.ora for the Database.
    Feel free to access my server if you need to do so in resolving my problems. The parameters you will need to gain access can be found at the top of Publish.java, and in the included *.ora files.
    Thanks,
    Thomas G. Matney
    [email protected]
    (662)325-2791
    //Start of Publish.java code
    // Oracle HTTP Server URL = http://yggdrasill.cfr.msstate.edu:7778
    // = http://130.18.168.225:7778
    // Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
    // = http://130.18.168.225/webtogo/startup
    // Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
    // = http://130.18.168.225/webtogo
    // Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
    // = http://130.18.168.225/webtogo
    // Mobile Server Control Center username = administrator
    // Mobile Server Control Center password = admin
    // Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
    // = http://130.18.168.225/webtogo/startup
    // Mobile administrator username = fiafield // Schema FIAFIELD on FIA.CFR.MSSTATE.EDU
    // Mobile administrator password = fiafield // Username and password are the same
    import java.sql.SQLException;
    import java.sql.*;
    import oracle.lite.sync.Consolidator;
    import oracle.lite.sync.ConsolidatorManager;
    import oracle.mobile.admin.ResourceManager;
    import oracle.mobile.admin.ResException;
    import oracle.sql.*;
    import oracle.jdbc.*;
    import oracle.mobile.admin.*;
    public class Publish
    // Schema names and usernames are not case sensitive.
    // UN fiafield = FIAFIELD
    // SCHEMA fiafield = FIAFIELD
    // Schema name/Username, and password used on creation of Mobile Repository
    static String CONS_SCHEMA = "fiafield";
    static String DEFAULT_PASSWORD = "fiafield";
    static String admin_jdbc_url = "jdbc:oracle:oci8:@WEBTOGO.WORLD";
    static String thin_jdbc_url =
    "jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU";
    static String Publication;
    static String CreateTreeTableShortNames =
    "CREATE TABLE FIAFIELD.ZMTR1TBL("
    + "id FLOAT,"
    + "subp FLOAT,"
    + "rnum FLOAT,"
    + "st FLOAT,"
    + "unit FLOAT,"
    + "cnty FLOAT,"
    + "plot FLOAT,"
    + "cyc FLOAT,"
    + "scyc FLOAT,"
    + "tree FLOAT,"
    + "ncpt FLOAT NULL,"
    + "dist FLOAT NULL,"
    + "diam FLOAT NULL,"
    + "dmht FLOAT NULL,"
    + "dmck FLOAT NULL,"
    + "spec FLOAT NULL,"
    + "lang FLOAT NULL,"
    + "nctc FLOAT NULL,"
    + "stat FLOAT NULL,"
    + "util FLOAT NULL,"
    + "deca FLOAT NULL,"
    + "crat FLOAT NULL,"
    + "ccls FLOAT NULL,"
    + "az FLOAT NULL,"
    + "cond FLOAT NULL,"
    + "tlen FLOAT NULL,"
    + "alen FLOAT NULL,"
    + "lmet FLOAT NULL,"
    + "nctg FLOAT NULL,"
    + "rcul FLOAT NULL,"
    + "ncpd FLOAT NULL,"
    + "dead FLOAT NULL,"
    + "mor FLOAT NULL,"
    + "modm FLOAT NULL,"
    + "dml1 FLOAT NULL,"
    + "dmt1 FLOAT NULL,"
    + "dms1 FLOAT NULL,"
    + "dma1 FLOAT NULL,"
    + "dml2 FLOAT NULL,"
    + "dmt2 FLOAT NULL,"
    + "dms2 FLOAT NULL,"
    + "dma2 FLOAT NULL,"
    + "dml3 FLOAT NULL,"
    + "dmt3 FLOAT NULL,"
    + "dms3 FLOAT NULL,"
    + "dma3 FLOAT NULL,"
    + "dbtr FLOAT NULL,"
    + "dbsp FLOAT NULL,"
    + "nxtn FLOAT NULL,"
    + "dbds FLOAT NULL,"
    + "dbaz FLOAT NULL,"
    + "psta FLOAT NULL,"
    + "fiat FLOAT NULL,"
    + "fhmt FLOAT NULL"
    + ")";
    static String CreateTreeTableLongNames =
    "CREATE TABLE FIAFIELD.ZMTR1TBL("
    + "ID FLOAT,"
    + "SUBPLOT FLOAT,"
    + "RECORD_NUMBER FLOAT,"
    + "STATE FLOAT,"
    + "UNIT FLOAT,"
    + "COUNTY FLOAT,"
    + "PLOT FLOAT,"
    + "CYCLE FLOAT,"
    + "SUBCYCLE FLOAT,"
    + "TREE FLOAT,"
    + "NC_PLOT_TYPE FLOAT,"
    + "DISTANCE FLOAT NULL,"
    + "DIAMETER FLOAT NULL,"
    + "DIAMETER_HEIGHT FLOAT NULL,"
    + "DIAMETER_CHECK FLOAT NULL,"
    + "SPECIES FLOAT NULL,"
    + "LEAN_ANGLE FLOAT NULL,"
    + "NC_TREE_CLASS FLOAT NULL,"
    + "STATUS FLOAT NULL,"
    + "UTILIZATION FLOAT NULL,"
    + "DECAY FLOAT NULL,"
    + "CROWN_RATIO FLOAT NULL,"
    + "CROWN_CLASS FLOAT NULL,"
    + "AZIMUTH FLOAT NULL,"
    + "CONDITION FLOAT NULL,"
    + "TOTAL_LENGTH FLOAT NULL,"
    + "ACTUAL_LENGTH FLOAT NULL,"
    + "LENGTH_METHOD FLOAT NULL,"
    + "NC_TREE_GRADE FLOAT NULL,"
    + "ROTTEN_CULL FLOAT NULL,"
    + "NC_PREVIOUS_DBH FLOAT NULL,"
    + "CAUSE_OF_DEATH FLOAT NULL,"
    + "MORTALITY_YEAR FLOAT NULL,"
    + "MO_DAMAGE FLOAT NULL,"
    + "DAMAGE_LOCATION1 FLOAT NULL,"
    + "DAMAGE_TYPE1 FLOAT NULL,"
    + "DAMAGE_SEVERITY1 FLOAT NULL,"
    + "NC_DAMAGE_AGENT1 FLOAT NULL,"
    + "DAMAGE_LOCATION2 FLOAT NULL,"
    + "DAMAGE_TYPE2 FLOAT NULL,"
    + "DAMAGE_SEVERITY2 FLOAT NULL,"
    + "NC_DAMAGE_AGENT2 FLOAT NULL,"
    + "DAMAGE_LOCATION3 FLOAT NULL,"
    + "DAMAGE_TYPE3 FLOAT NULL,"
    + "DAMAGE_SEVERITY3 FLOAT NULL,"
    + "NC_DAMAGE_AGENT3 FLOAT NULL,"
    + "DB_TREE FLOAT NULL,"
    + "DB_SPECIES FLOAT NULL,"
    + "NEXT_NUMBER FLOAT NULL,"
    + "DB_DISTANCE FLOAT NULL,"
    + "DB_AZIMUTH FLOAT NULL,"
    + "PREVIOUS_STATUS FLOAT NULL,"
    + "FIA_TREE_NUMBER FLOAT NULL,"
    + "FHM_TREE FLOAT NULL"
    + ")";
    public static void main(String argv[]) throws Throwable
    // Publish - an OKAPI sample
    if(argv.length == 2)
    CONS_SCHEMA = argv[0] ;
    DEFAULT_PASSWORD = argv[1] ;
    //create required tables using standard jdbc
    //DriverManager.registerDriver ((Driver)Class.forName ("oracle.jdbc.driver.OracleDriver").newInstance ());
    DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
    Connection c = null;
    Statement s = null;
    try
    // Open connection to Mobile Repositoty/FIAFIELD schema as SYSTEM.
    // Need the ability to grant resources, and connection to Mobile Repository user
    //c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD", "SYSTEM", "phwphw" );
    // Remote connection. See attached webtogo.ora.
    c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD.YGG",
    "SYSTEM", "phwphw");
    s = c.createStatement ();
    try
    s.executeUpdate("DROP table FIAFIELD.ZMTR1TBL");
    catch (SQLException ee)
    ee.printStackTrace ();
    try
    s.executeUpdate(CreateTreeTableShortNames);
    catch (SQLException ee)
    ee.printStackTrace ();
    try
    s.executeUpdate("alter table FIAFIELD.ZMTR1TBL add constraint"
    +" zmtr1tbl_pk primary key(subp, tree)");
    catch (SQLException ee)
    ee.printStackTrace ();
    // Line 223 // create consolidator publications.
    try
    // *****!!!!! Unless the Webtogo.ora file is in the current working
    // directory the connection is not made. This version of the resource
    // manager must be looking for the file in the old 8i Mobile default
    // directory. This is a definite problem. If the code was working, the
    // addition of the webtogo.ora should have affect on the functionality
    // of the code.
    // The connection is made to the Mobile Server. At least no exceptions
    // are thrown, provided the webtogo.ora is in the current working
    // directory.
    //oracle.mobile.admin.ResourceManager.openConnection(CONS_SCHEMA, DEFAULT_PASSWORD);
    // I tried making a direct connect to possibly avoid needing to have the
    // webtogo.ora file in the current directory. The direct coonect did not work.
    // You can quickly convince yourself that the webtogo.ora file must
    // be in the current working directory, by running the code with and
    // without the webtogo.ora in the current working directory.
    // The directory OraLiteHome\Mobile\Server\bin is in the PATH after
    // after installation but the extension .ora is not in PATHEXT. The
    // OraLite installer should put .ora in PATHEXT. I tried adding .ora
    // to the PATHEXT, but it still could not find thw webtogo.ora file,
    // and it should have. What is going on? I am a bit rusty on DOS so
    // I may not have thing right.
    // OraLiteHome\Mobile\Server\bin is the residing directory for
    // the functional copy of the webtogo.ora file.
    oracle.mobile.admin.ResourceManager.openConnection(
    CONS_SCHEMA,
    DEFAULT_PASSWORD,
    "jdbc:oracle:oci8:@WEBTOGO.WORLD");
    catch(ResException ee)
    ee.printStackTrace (); // NULL Pointer Exception?
    // The Mobile user is created, and then the function throws a resource exception.
    // This is a serious problem with the code. One would assume that the user
    // is not created if and exception is thrown.
    // This appears to be a bug in the createUser code. The function should return
    // false if the user is not created, and handle, or not throw the exception.
    // The function always returns false. It does return true when a user is created
    // because it throws an exception.
    boolean bIsCreated;
    System.out.println("Begin of why is ResourceManager not dropping users?");
    // Line 277
    try
    // The dropUser function will not drop a user. I have tested the function
    // by creating the user ZMPT1UA in the Mobile Server Control Center
    // http://Yggdrasill.cfr.msstate.edu/webtogo
    // so I know that the user exist.
    // This function throws a ResException but it is not declared correctly
    // since you cannot trap the exception as a ResException. It always tells
    // me the view does not exist. What steps are required to get the function
    // to work? What function calls need to be made prior to calling the dropUser
    // function.
    oracle.mobile.admin.ResourceManager.dropUser("ZMPT1UA");
    catch (Throwable ee)
    ee.printStackTrace (); // NULL Pointer Exception?
    System.out.println("End of why is ResourceManager not dropping users?");
    try
    bIsCreated = oracle.mobile.admin.ResourceManager.createUser(
    "ZMPT1UA",
    DEFAULT_PASSWORD,
    "ZMPT1UA", "S");
    catch (Throwable ee)
    ee.printStackTrace (); // Ignore exception
    // Obsolete or depreciated function, according to documentation?
    oracle.mobile.admin.ResourceManager.commitTransaction();
    // Create CONS_SCHEMA user on the database with the same username, and
    // password as the user on the Mobile Server side. This is why the
    // DriverManager connection was made as SYSTEM/phwphw.
    // Grant ALL to repository, and user on replicated database
    // On the database side there is a user with un = fiafield,
    // and pw = fiafield, which is the same as the Mobile Repository
    // schema name/password pair fiafield/fiafield. Can this duality
    // create a problem? Probably not.
    // Need SYSTEM ADMIN privilages for the next two steps, and that is
    // why the coonection was established as SYSTEM/phwphw.
    // Make user, and grants for Publish to user CONS_SCHEMA, and ZMPT1UA
    System.out.println("Pargress point D");
    try
    s.execute("Create user " + "ZMPT1UA" + " identified by " + DEFAULT_PASSWORD);
    catch (SQLException ee)
    ee.printStackTrace (); // ignore
    try
    s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + CONS_SCHEMA + " WITH GRANT OPTION");
    catch (SQLException ee)
    ee.printStackTrace (); // ignore
    try
    s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + "ZMPT1UA" + " WITH GRANT OPTION");
    catch (SQLException ee)
    ee.printStackTrace (); // ignore
    /* This code is not needed to test the code
    // Insert items into table FIAFIELD.ZMTR1TBL from FIAFIELD.HUSKY_TREE
    String Statement =
    "INSERT INTO FIAFIELD.ZMTR1TBL SELECT * from FIAFIELD.HUSKY_TREE WHERE PLOT = 1";
    try
    s.execute(Statement);
    catch (SQLException ee)
    System.out.println("FIAFIELD.HUSKY_TREE was not inserted into FIAFIELD.ZMTR1TBL");
    ee.printStackTrace (); // ignore
    c.commit ();
    catch (SQLException ee)
    ee.printStackTrace ();
    finally
    if (s!= null) try {s.close ();}catch (SQLException e1){}
    if (c!= null) try {c.close ();}catch (SQLException e2){}
    // The Consolidator class is not thread safe, and I will eventually
    // need thread safety. The ConsolidatorManage class is thread safe.
    //Consolidator ConsolidatorXX = new Consolidator();
    ConsolidatorManager ConsolidatorXX = new ConsolidatorManager();
    // Line 386
    // Try opening a connection. Sample11 does not open a connection, but it seems
    // like a logical first thing to do.
    // At least with this connection the DropPublication, and AddPublication functions
    // appear to work, or at least they do not throw exceptions. The DropPublication
    // throws an exception if a publication does not exist? I tested this and indeed
    // if I call the DropPublication function, and do not create the Publication again
    // when I reenter the program the DropPublication function throws an exception, and
    // produces the correct error message(The publication does not exist). There is hope.
    // It is very disturbing that the program fails unless the webtogo.ora file is not
    // in the current working directory. Because the OpenConnection functions of both
    // the ResourceManager, and ConsolidatorManager both appear to need access to the
    // webtogo.ora file, and they are finding them in the current directory, the
    // logical conclusion is that both of the classes are attempting to open the
    // webtogo.ora with the relative path webtogo.ora, and not the absolute path
    // OraHomeLite/Mobile/Server/Bin/webtogo.ora. As this has to be the case, why
    // is this very important fact not in the documentation? Or, am I wrong?
    Connection conn = null;
    try
    //ConsolidatorXX.OpenConnection(CONS_SCHEMA,
    //DEFAULT_PASSWORD);
    //ConsolidatorXX.OpenConnection(CONS_SCHEMA,
    //DEFAULT_PASSWORD,
    //"jdbc:oracle:oci8:@WEBTOGO.WORLD");
    conn = DriverManager.getConnection
    ("jdbc:oracle:oci8:@WEBTOGO.WORLD",
    CONS_SCHEMA,DEFAULT_PASSWORD);
    //conn = DriverManager.getConnection
    //("jdbc:oracle:oci8:@WEBTOGO.WORLD",
    //"SYSTEM","phwphw");
    ConsolidatorXX.OpenConnection(conn);
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    // Publication name
    Publication = "ZMTR1PUB";
    try
    ConsolidatorXX.DeinstantiateSubscription(Publication, "ZMPT1UA");
    catch (Throwable e)
    System.out.println("Could not Deinstantiate Subscription ZMPT1UA");
    e.printStackTrace(); //ignore error
    // Line 448
    // There is no Consolidator.OpenConnection in the orginal sample11.java code.
    // Why?. It appears to be neccessary. The only way I can make the sample11 code
    // or this program work is to open a jdbc connection with the Consolidator.OpenConnection
    // function. I assume that somehow the Consolidator.OpenConnection function was
    // deleted from sample11.java.
    // This try to drop a publication index does not work, because when I try
    // to recreate the index in the following code it warns me that I have a
    // bad column name for the index. So it thinks the index still exist.
    // Why?. How do I get rid of the index?
    try
    ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    try
    ConsolidatorXX.DropPublicationItem("ZMTR1ITM");
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    try
    ConsolidatorXX.DropPublication(Publication);
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    try
    //ConsolidatorXX.CreatePublication(Publication, Consolidator.OKPI_CREATOR_ID,
    //"zMTR1.%s", null);
    ConsolidatorXX.CreatePublication(Publication, Consolidator.OKAPI_WINCE,
    "zMTR1.%s", null);
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    try
    ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    try
    ConsolidatorXX.CreatePublicationItem("ZMTR1ITM","FIAFIELD","ZMTR1TBL", "F",
    "SELECT * FROM FIAFIELD.ZMTR1TBL", null, null);
    catch (Throwable e)
    e.printStackTrace();
    System.out.println("Begin of how can drop this index and get rid of the warning?");
    // Line 522
    // I defined the index ZMTR1IX1 originally on the variable subp, and did not get
    // any warning. I then changed the index variable for the index to id, and started
    // receiving the warning to check the index column for typographical errors. Even
    // if I change the index variable back to subp, I continue to receive the warning.
    // How do I get rid of the index and the warning, so I can recreate the index for
    // another variable? I quess the real question is "How to I completely remove a
    // publication, and all of its parts so I can start over?
    try
    ConsolidatorXX.CreatePublicationItemIndex(
    "ZMTR1IX1", "ZMTR1ITM", "I", "id");
    catch (Throwable e)
    e.printStackTrace ();
    System.out.println("End of how can drop this index and get rid of the warning?");
    try
    ConsolidatorXX.AddPublicationItem(
    Publication, "ZMTR1ITM", null, null, "S", null, null);
    catch (Throwable e)
    e.printStackTrace ();
    try
    ConsolidatorXX.CreateSubscription(Publication, "ZMPT1UA");
    catch (Throwable e)
    e.printStackTrace ();
    try
    ConsolidatorXX.InstantiateSubscription(Publication, "ZMPT1UA");
    catch (Throwable e)
    e.printStackTrace ();
    try
    ConsolidatorXX.CloseConnection();
    if(conn != null)
    conn.close();
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    // Obsolete or depreciated function, according to documentation?
    oracle.mobile.admin.ResourceManager.commitTransaction();
    oracle.mobile.admin.ResourceManager.closeConnection();
    End of Publish.java code     
    Begin Compile.bat
    set CLASSPATH = .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
    set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
    d:\jdk1.4.0\bin\javac Publish.java
    End Compile.bat          
    Begin Run.bat
    set CLASSPATH= .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
    set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
    d:\jdk1.4.0\bin\java Publish
    End Run.bat
    Begin webtogo.ora
    USE_SYSTEM_CLASSPATH = NO
    MODE = SERVER
    PORT = 80
    BASE_URL=/webtogo
    ADMIN_TNS_NAME=WEBTOGO.WORLD
    ADMIN_JDBC_URL=jdbc:oracle:oci8:@WEBTOGO.WORLD
    APPLET_USE_THIN_JDBC = YES
    THIN_JDBC_URL=jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU
    SITE_OFFLINE_PERIOD=0
    CUSTOM_WORKSPACE=no
    CUSTOM_DIRECTORY=myworkspace
    DEFAULT_PAGE=myfirstpage.html
    ADMIN_USER=8B37E78535B55525292A3A2929292999
    ADMIN_PASSWORD=873515A838B85828292A3A2929292999
    [EXTERNAL_AUTHENTICATION]
    #CLASS=com.acme.SampleAuthenticator
    # Web-to-go workspace's font
    FONT_NAME=Arial
    [FILESYSTEM]
    #ROOT_DIR=%WEBTOGO_HOME%\server
    #TYPE=O8
    #TYPE=OL
    #TYPE=OS
    # Cache size in MBs
    #CACHE_SIZE=10
    MAX_CONNECTIONS=4
    [DEBUG]
    #ENABLE=YES
    # The log file name.
    #LOG_FILE=test.log
    # Machine name and port where wsh.exe -m is running. Web-to-go
    # will send debug output to that machine.
    #MACHINE=
    #PORT=100
    [APPLICATIONS]
    XMLFILE = ws1.xml
    PACK_HELP=D:\OraLite501\mobile\doc\wtg\html\wtgdep.htm
    [PUBLIC]
    oracle.lite.sync.ConsolidatorServlet=/Consolidator
    [CONSOLIDATOR]
    # Installer will change these values
    SERVER_VERSION=8.1.5
    # 8.0.5 or 8.1.5
    # Installer won't change these values
    MAX_THREADS=3
    JDBC_DRIVER=oracle.jdbc.driver.OracleDriver
    CREATE_USER_OPTIONS_O8I=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS TEMPORARY TABLESPACE INDX QUOTA UNLIMITED ON INDX
    CREATE_USER_OPTIONS_O8=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USR QUOTA UNLIMITED ON USR
    TEMPORARY TABLESPACE TEMPORARY QUOTA UNLIMITED ON TEMPORARY
    TEMP=c:\\temp
    WTG_PROXY_PORT=80
    TRACE=NO
    TRACE_ALL=NO
    End webtogo.ora
    Begin Mobile Server tnsnames.ora file
    # TNSNAMES.ORA Network Configuration File: D:\OraLite501\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    WEBTOGO.WORLD =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    WEBTOGO.WORLD.YGG =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    End Mobile Server tnsnames.ora file
    Begin Database tnsnames.ora file
    # TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    INST1_HTTP.CFR.MSSTATE.EDU =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = SHARED)
    (SERVICE_NAME = MODOSE)
    (PRESENTATION = http://HRService)
    FIA.CFR.MSSTATE.EDU =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    FIA.YGGDRASILL.CFR.MSSTATE.EDU =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    FIA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    FIA.YGG =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    EXTPROC_CONNECTION_DATA.CFR.MSSTATE.EDU =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    End Database tnsnames.ora file

    Dear Oracle technical representative, or user:
    I need to programmatically create, and remove publications using the pure JAVA classes of Consolidator, ConsolidatorManager, and ResourceManager for the Mobile Server in OracleLite 9i Release 5.0.1. On the creation side I have managed to get the example found in the directory OraLite501\Mobile\Server\Sample\Sample11 functioning using my installation parameters. I had a very difficult time of it because (1) the sample11 code fails to open an jdbc connection to the Mobile Server Repository Schema with the function Consolidator.OpenConnection, and (2) the ResourceManager function openConnection will not work unless the Webtogo.ora file is in the current working directory. The ConsolidatorManager function OpenConnection may also not work unless the Webtogo.ora file is in the current working directory, but I did test the hypothesis. Both of these problems need to be addressed in the sample11 code, and documentation to save other software developers from wasting hours of their valuable time. See line 223, 386, and 448 in the Publish.Java code that follows this problem description.
    With the above two problems resolved, I can now programmatically create publications, but no hints on how to programmatically remove a publication exist in the documentation. The application I am developing will require the dynamic creation, and removal of publications. Also, when developing applications the complete removal of a publication is absolutely necessary when you have botched a publication. Thus my first question is What sequence of ResourceManager, and ConsolidatorManager function calls will completely remove a Publication?.
    I also have two issues remaining with the code that I have so far developed. These issues will most likely be resolved, when I obtain instructions on how to completely remove a publication, and associated users. But, perhaps not. Referencing the Publish.java file that follows this problem description,
         1. The ResourceManager function dropUser does not drop a user. See my comments, and code beginning at line 277 in Publish.java. Do I need to de-instantiate all subscriptions, and unsubscribe all subscription users before calling this function.? I think, I tried the de-instantiate, unsubscribe sequence without success, but in the confusion I may not have made the try.
         2. How do I get rid of an index created with the ConsolidatorManager function DropPublicationItemIndex?. My comments on this problem begin at line 522 in Publish.java. For some reason the DropPublicationItemIndex function call made below line 448 does not work. What function calls are required prior to calling the DropPublicationItemIndex function?
    Throughout the Publish.java code, I have made comments about some of the problems that I have had in getting the sample11 code working for my installation parameters. I think these comments should help the programmers maintaining the ResourceManager, and ConsolidatorManager code improve the stability of the programs. Please pass these comments, and attached files to the appropriate individuals,
    if you are in a position to do so.
    The other files that follow the Publish.java code are
         1. Compile.bat - Compiles Publish.java using j2sdk1.4.0.
         2. Run.bat - Executes Publish using \ j2sdk1.4.0\jre\server\jvm.dll.
         3. Webtogo.ora
         4. tnsnames.ora for the Mobile Server.
         5. tnsnames.ora for the Database.
    Feel free to access my server if you need to do so in resolving my problems. The parameters you will need to gain access can be found at the top of Publish.java, and in the included *.ora files.
    Thanks,
    Thomas G. Matney
    [email protected]
    (662)325-2791
    //Start of Publish.java code
    // Oracle HTTP Server URL = http://yggdrasill.cfr.msstate.edu:7778
    // = http://130.18.168.225:7778
    // Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
    // = http://130.18.168.225/webtogo/startup
    // Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
    // = http://130.18.168.225/webtogo
    // Mobile Server Control Center URL = http://yggdrasill.cfr.msstate.edu/webtogo
    // = http://130.18.168.225/webtogo
    // Mobile Server Control Center username = administrator
    // Mobile Server Control Center password = admin
    // Mobile Server URL = http://yggdrasill.cfr.msstate.edu/webtogo/startup
    // = http://130.18.168.225/webtogo/startup
    // Mobile administrator username = fiafield // Schema FIAFIELD on FIA.CFR.MSSTATE.EDU
    // Mobile administrator password = fiafield // Username and password are the same
    import java.sql.SQLException;
    import java.sql.*;
    import oracle.lite.sync.Consolidator;
    import oracle.lite.sync.ConsolidatorManager;
    import oracle.mobile.admin.ResourceManager;
    import oracle.mobile.admin.ResException;
    import oracle.sql.*;
    import oracle.jdbc.*;
    import oracle.mobile.admin.*;
    public class Publish
    // Schema names and usernames are not case sensitive.
    // UN fiafield = FIAFIELD
    // SCHEMA fiafield = FIAFIELD
    // Schema name/Username, and password used on creation of Mobile Repository
    static String CONS_SCHEMA = "fiafield";
    static String DEFAULT_PASSWORD = "fiafield";
    static String admin_jdbc_url = "jdbc:oracle:oci8:@WEBTOGO.WORLD";
    static String thin_jdbc_url =
    "jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU";
    static String Publication;
    static String CreateTreeTableShortNames =
    "CREATE TABLE FIAFIELD.ZMTR1TBL("
    + "id FLOAT,"
    + "subp FLOAT,"
    + "rnum FLOAT,"
    + "st FLOAT,"
    + "unit FLOAT,"
    + "cnty FLOAT,"
    + "plot FLOAT,"
    + "cyc FLOAT,"
    + "scyc FLOAT,"
    + "tree FLOAT,"
    + "ncpt FLOAT NULL,"
    + "dist FLOAT NULL,"
    + "diam FLOAT NULL,"
    + "dmht FLOAT NULL,"
    + "dmck FLOAT NULL,"
    + "spec FLOAT NULL,"
    + "lang FLOAT NULL,"
    + "nctc FLOAT NULL,"
    + "stat FLOAT NULL,"
    + "util FLOAT NULL,"
    + "deca FLOAT NULL,"
    + "crat FLOAT NULL,"
    + "ccls FLOAT NULL,"
    + "az FLOAT NULL,"
    + "cond FLOAT NULL,"
    + "tlen FLOAT NULL,"
    + "alen FLOAT NULL,"
    + "lmet FLOAT NULL,"
    + "nctg FLOAT NULL,"
    + "rcul FLOAT NULL,"
    + "ncpd FLOAT NULL,"
    + "dead FLOAT NULL,"
    + "mor FLOAT NULL,"
    + "modm FLOAT NULL,"
    + "dml1 FLOAT NULL,"
    + "dmt1 FLOAT NULL,"
    + "dms1 FLOAT NULL,"
    + "dma1 FLOAT NULL,"
    + "dml2 FLOAT NULL,"
    + "dmt2 FLOAT NULL,"
    + "dms2 FLOAT NULL,"
    + "dma2 FLOAT NULL,"
    + "dml3 FLOAT NULL,"
    + "dmt3 FLOAT NULL,"
    + "dms3 FLOAT NULL,"
    + "dma3 FLOAT NULL,"
    + "dbtr FLOAT NULL,"
    + "dbsp FLOAT NULL,"
    + "nxtn FLOAT NULL,"
    + "dbds FLOAT NULL,"
    + "dbaz FLOAT NULL,"
    + "psta FLOAT NULL,"
    + "fiat FLOAT NULL,"
    + "fhmt FLOAT NULL"
    + ")";
    static String CreateTreeTableLongNames =
    "CREATE TABLE FIAFIELD.ZMTR1TBL("
    + "ID FLOAT,"
    + "SUBPLOT FLOAT,"
    + "RECORD_NUMBER FLOAT,"
    + "STATE FLOAT,"
    + "UNIT FLOAT,"
    + "COUNTY FLOAT,"
    + "PLOT FLOAT,"
    + "CYCLE FLOAT,"
    + "SUBCYCLE FLOAT,"
    + "TREE FLOAT,"
    + "NC_PLOT_TYPE FLOAT,"
    + "DISTANCE FLOAT NULL,"
    + "DIAMETER FLOAT NULL,"
    + "DIAMETER_HEIGHT FLOAT NULL,"
    + "DIAMETER_CHECK FLOAT NULL,"
    + "SPECIES FLOAT NULL,"
    + "LEAN_ANGLE FLOAT NULL,"
    + "NC_TREE_CLASS FLOAT NULL,"
    + "STATUS FLOAT NULL,"
    + "UTILIZATION FLOAT NULL,"
    + "DECAY FLOAT NULL,"
    + "CROWN_RATIO FLOAT NULL,"
    + "CROWN_CLASS FLOAT NULL,"
    + "AZIMUTH FLOAT NULL,"
    + "CONDITION FLOAT NULL,"
    + "TOTAL_LENGTH FLOAT NULL,"
    + "ACTUAL_LENGTH FLOAT NULL,"
    + "LENGTH_METHOD FLOAT NULL,"
    + "NC_TREE_GRADE FLOAT NULL,"
    + "ROTTEN_CULL FLOAT NULL,"
    + "NC_PREVIOUS_DBH FLOAT NULL,"
    + "CAUSE_OF_DEATH FLOAT NULL,"
    + "MORTALITY_YEAR FLOAT NULL,"
    + "MO_DAMAGE FLOAT NULL,"
    + "DAMAGE_LOCATION1 FLOAT NULL,"
    + "DAMAGE_TYPE1 FLOAT NULL,"
    + "DAMAGE_SEVERITY1 FLOAT NULL,"
    + "NC_DAMAGE_AGENT1 FLOAT NULL,"
    + "DAMAGE_LOCATION2 FLOAT NULL,"
    + "DAMAGE_TYPE2 FLOAT NULL,"
    + "DAMAGE_SEVERITY2 FLOAT NULL,"
    + "NC_DAMAGE_AGENT2 FLOAT NULL,"
    + "DAMAGE_LOCATION3 FLOAT NULL,"
    + "DAMAGE_TYPE3 FLOAT NULL,"
    + "DAMAGE_SEVERITY3 FLOAT NULL,"
    + "NC_DAMAGE_AGENT3 FLOAT NULL,"
    + "DB_TREE FLOAT NULL,"
    + "DB_SPECIES FLOAT NULL,"
    + "NEXT_NUMBER FLOAT NULL,"
    + "DB_DISTANCE FLOAT NULL,"
    + "DB_AZIMUTH FLOAT NULL,"
    + "PREVIOUS_STATUS FLOAT NULL,"
    + "FIA_TREE_NUMBER FLOAT NULL,"
    + "FHM_TREE FLOAT NULL"
    + ")";
    public static void main(String argv[]) throws Throwable
    // Publish - an OKAPI sample
    if(argv.length == 2)
    CONS_SCHEMA = argv[0] ;
    DEFAULT_PASSWORD = argv[1] ;
    //create required tables using standard jdbc
    //DriverManager.registerDriver ((Driver)Class.forName ("oracle.jdbc.driver.OracleDriver").newInstance ());
    DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
    Connection c = null;
    Statement s = null;
    try
    // Open connection to Mobile Repositoty/FIAFIELD schema as SYSTEM.
    // Need the ability to grant resources, and connection to Mobile Repository user
    //c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD", "SYSTEM", "phwphw" );
    // Remote connection. See attached webtogo.ora.
    c = DriverManager.getConnection ("jdbc:oracle:oci8:@WEBTOGO.WORLD.YGG",
    "SYSTEM", "phwphw");
    s = c.createStatement ();
    try
    s.executeUpdate("DROP table FIAFIELD.ZMTR1TBL");
    catch (SQLException ee)
    ee.printStackTrace ();
    try
    s.executeUpdate(CreateTreeTableShortNames);
    catch (SQLException ee)
    ee.printStackTrace ();
    try
    s.executeUpdate("alter table FIAFIELD.ZMTR1TBL add constraint"
    +" zmtr1tbl_pk primary key(subp, tree)");
    catch (SQLException ee)
    ee.printStackTrace ();
    // Line 223 // create consolidator publications.
    try
    // *****!!!!! Unless the Webtogo.ora file is in the current working
    // directory the connection is not made. This version of the resource
    // manager must be looking for the file in the old 8i Mobile default
    // directory. This is a definite problem. If the code was working, the
    // addition of the webtogo.ora should have affect on the functionality
    // of the code.
    // The connection is made to the Mobile Server. At least no exceptions
    // are thrown, provided the webtogo.ora is in the current working
    // directory.
    //oracle.mobile.admin.ResourceManager.openConnection(CONS_SCHEMA, DEFAULT_PASSWORD);
    // I tried making a direct connect to possibly avoid needing to have the
    // webtogo.ora file in the current directory. The direct coonect did not work.
    // You can quickly convince yourself that the webtogo.ora file must
    // be in the current working directory, by running the code with and
    // without the webtogo.ora in the current working directory.
    // The directory OraLiteHome\Mobile\Server\bin is in the PATH after
    // after installation but the extension .ora is not in PATHEXT. The
    // OraLite installer should put .ora in PATHEXT. I tried adding .ora
    // to the PATHEXT, but it still could not find thw webtogo.ora file,
    // and it should have. What is going on? I am a bit rusty on DOS so
    // I may not have thing right.
    // OraLiteHome\Mobile\Server\bin is the residing directory for
    // the functional copy of the webtogo.ora file.
    oracle.mobile.admin.ResourceManager.openConnection(
    CONS_SCHEMA,
    DEFAULT_PASSWORD,
    "jdbc:oracle:oci8:@WEBTOGO.WORLD");
    catch(ResException ee)
    ee.printStackTrace (); // NULL Pointer Exception?
    // The Mobile user is created, and then the function throws a resource exception.
    // This is a serious problem with the code. One would assume that the user
    // is not created if and exception is thrown.
    // This appears to be a bug in the createUser code. The function should return
    // false if the user is not created, and handle, or not throw the exception.
    // The function always returns false. It does return true when a user is created
    // because it throws an exception.
    boolean bIsCreated;
    System.out.println("Begin of why is ResourceManager not dropping users?");
    // Line 277
    try
    // The dropUser function will not drop a user. I have tested the function
    // by creating the user ZMPT1UA in the Mobile Server Control Center
    // http://Yggdrasill.cfr.msstate.edu/webtogo
    // so I know that the user exist.
    // This function throws a ResException but it is not declared correctly
    // since you cannot trap the exception as a ResException. It always tells
    // me the view does not exist. What steps are required to get the function
    // to work? What function calls need to be made prior to calling the dropUser
    // function.
    oracle.mobile.admin.ResourceManager.dropUser("ZMPT1UA");
    catch (Throwable ee)
    ee.printStackTrace (); // NULL Pointer Exception?
    System.out.println("End of why is ResourceManager not dropping users?");
    try
    bIsCreated = oracle.mobile.admin.ResourceManager.createUser(
    "ZMPT1UA",
    DEFAULT_PASSWORD,
    "ZMPT1UA", "S");
    catch (Throwable ee)
    ee.printStackTrace (); // Ignore exception
    // Obsolete or depreciated function, according to documentation?
    oracle.mobile.admin.ResourceManager.commitTransaction();
    // Create CONS_SCHEMA user on the database with the same username, and
    // password as the user on the Mobile Server side. This is why the
    // DriverManager connection was made as SYSTEM/phwphw.
    // Grant ALL to repository, and user on replicated database
    // On the database side there is a user with un = fiafield,
    // and pw = fiafield, which is the same as the Mobile Repository
    // schema name/password pair fiafield/fiafield. Can this duality
    // create a problem? Probably not.
    // Need SYSTEM ADMIN privilages for the next two steps, and that is
    // why the coonection was established as SYSTEM/phwphw.
    // Make user, and grants for Publish to user CONS_SCHEMA, and ZMPT1UA
    System.out.println("Pargress point D");
    try
    s.execute("Create user " + "ZMPT1UA" + " identified by " + DEFAULT_PASSWORD);
    catch (SQLException ee)
    ee.printStackTrace (); // ignore
    try
    s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + CONS_SCHEMA + " WITH GRANT OPTION");
    catch (SQLException ee)
    ee.printStackTrace (); // ignore
    try
    s.execute("GRANT ALL ON FIAFIELD.ZMTR1TBL to " + "ZMPT1UA" + " WITH GRANT OPTION");
    catch (SQLException ee)
    ee.printStackTrace (); // ignore
    /* This code is not needed to test the code
    // Insert items into table FIAFIELD.ZMTR1TBL from FIAFIELD.HUSKY_TREE
    String Statement =
    "INSERT INTO FIAFIELD.ZMTR1TBL SELECT * from FIAFIELD.HUSKY_TREE WHERE PLOT = 1";
    try
    s.execute(Statement);
    catch (SQLException ee)
    System.out.println("FIAFIELD.HUSKY_TREE was not inserted into FIAFIELD.ZMTR1TBL");
    ee.printStackTrace (); // ignore
    c.commit ();
    catch (SQLException ee)
    ee.printStackTrace ();
    finally
    if (s!= null) try {s.close ();}catch (SQLException e1){}
    if (c!= null) try {c.close ();}catch (SQLException e2){}
    // The Consolidator class is not thread safe, and I will eventually
    // need thread safety. The ConsolidatorManage class is thread safe.
    //Consolidator ConsolidatorXX = new Consolidator();
    ConsolidatorManager ConsolidatorXX = new ConsolidatorManager();
    // Line 386
    // Try opening a connection. Sample11 does not open a connection, but it seems
    // like a logical first thing to do.
    // At least with this connection the DropPublication, and AddPublication functions
    // appear to work, or at least they do not throw exceptions. The DropPublication
    // throws an exception if a publication does not exist? I tested this and indeed
    // if I call the DropPublication function, and do not create the Publication again
    // when I reenter the program the DropPublication function throws an exception, and
    // produces the correct error message(The publication does not exist). There is hope.
    // It is very disturbing that the program fails unless the webtogo.ora file is not
    // in the current working directory. Because the OpenConnection functions of both
    // the ResourceManager, and ConsolidatorManager both appear to need access to the
    // webtogo.ora file, and they are finding them in the current directory, the
    // logical conclusion is that both of the classes are attempting to open the
    // webtogo.ora with the relative path webtogo.ora, and not the absolute path
    // OraHomeLite/Mobile/Server/Bin/webtogo.ora. As this has to be the case, why
    // is this very important fact not in the documentation? Or, am I wrong?
    Connection conn = null;
    try
    //ConsolidatorXX.OpenConnection(CONS_SCHEMA,
    //DEFAULT_PASSWORD);
    //ConsolidatorXX.OpenConnection(CONS_SCHEMA,
    //DEFAULT_PASSWORD,
    //"jdbc:oracle:oci8:@WEBTOGO.WORLD");
    conn = DriverManager.getConnection
    ("jdbc:oracle:oci8:@WEBTOGO.WORLD",
    CONS_SCHEMA,DEFAULT_PASSWORD);
    //conn = DriverManager.getConnection
    //("jdbc:oracle:oci8:@WEBTOGO.WORLD",
    //"SYSTEM","phwphw");
    ConsolidatorXX.OpenConnection(conn);
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    // Publication name
    Publication = "ZMTR1PUB";
    try
    ConsolidatorXX.DeinstantiateSubscription(Publication, "ZMPT1UA");
    catch (Throwable e)
    System.out.println("Could not Deinstantiate Subscription ZMPT1UA");
    e.printStackTrace(); //ignore error
    // Line 448
    // There is no Consolidator.OpenConnection in the orginal sample11.java code.
    // Why?. It appears to be neccessary. The only way I can make the sample11 code
    // or this program work is to open a jdbc connection with the Consolidator.OpenConnection
    // function. I assume that somehow the Consolidator.OpenConnection function was
    // deleted from sample11.java.
    // This try to drop a publication index does not work, because when I try
    // to recreate the index in the following code it warns me that I have a
    // bad column name for the index. So it thinks the index still exist.
    // Why?. How do I get rid of the index?
    try
    ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    try
    ConsolidatorXX.DropPublicationItem("ZMTR1ITM");
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    try
    ConsolidatorXX.DropPublication(Publication);
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    try
    //ConsolidatorXX.CreatePublication(Publication, Consolidator.OKPI_CREATOR_ID,
    //"zMTR1.%s", null);
    ConsolidatorXX.CreatePublication(Publication, Consolidator.OKAPI_WINCE,
    "zMTR1.%s", null);
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    try
    ConsolidatorXX.DropPublicationItemIndex("ZMTR1IX1");
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    try
    ConsolidatorXX.CreatePublicationItem("ZMTR1ITM","FIAFIELD","ZMTR1TBL", "F",
    "SELECT * FROM FIAFIELD.ZMTR1TBL", null, null);
    catch (Throwable e)
    e.printStackTrace();
    System.out.println("Begin of how can drop this index and get rid of the warning?");
    // Line 522
    // I defined the index ZMTR1IX1 originally on the variable subp, and did not get
    // any warning. I then changed the index variable for the index to id, and started
    // receiving the warning to check the index column for typographical errors. Even
    // if I change the index variable back to subp, I continue to receive the warning.
    // How do I get rid of the index and the warning, so I can recreate the index for
    // another variable? I quess the real question is "How to I completely remove a
    // publication, and all of its parts so I can start over?
    try
    ConsolidatorXX.CreatePublicationItemIndex(
    "ZMTR1IX1", "ZMTR1ITM", "I", "id");
    catch (Throwable e)
    e.printStackTrace ();
    System.out.println("End of how can drop this index and get rid of the warning?");
    try
    ConsolidatorXX.AddPublicationItem(
    Publication, "ZMTR1ITM", null, null, "S", null, null);
    catch (Throwable e)
    e.printStackTrace ();
    try
    ConsolidatorXX.CreateSubscription(Publication, "ZMPT1UA");
    catch (Throwable e)
    e.printStackTrace ();
    try
    ConsolidatorXX.InstantiateSubscription(Publication, "ZMPT1UA");
    catch (Throwable e)
    e.printStackTrace ();
    try
    ConsolidatorXX.CloseConnection();
    if(conn != null)
    conn.close();
    catch (Throwable e)
    e.printStackTrace(); //ignore error
    // Obsolete or depreciated function, according to documentation?
    oracle.mobile.admin.ResourceManager.commitTransaction();
    oracle.mobile.admin.ResourceManager.closeConnection();
    End of Publish.java code     
    Begin Compile.bat
    set CLASSPATH = .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
    set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
    d:\jdk1.4.0\bin\javac Publish.java
    End Compile.bat          
    Begin Run.bat
    set CLASSPATH= .;D:\jdk1.4.0\lib\tools.jar;D:\OraLite501\MOBILE\classes\CONSOLIDATOR.JAR;D:\OraLite501\MOBILE\SERVER\BIN\WEBTOGO.JAR;D:\OraLite501\jdbc\lib\classes12.zip;D:\OraLite501\MOBILE\classes\classgen.jar;D:\OraLite501\MOBILE\classes\servlet.jar;D:\OraLite501\MOBILE\CLASSES\OLITE40.JAR
    set PATH= d:\jdk1.4.0\jre\bin\server;d:\jdk1.4.0\bin;D:\OraLite501\bin;D:\OraLite501\Mobile\Server\bin;D:\oracle\ora92\bin;D:\OraLite501\MOBILE\sdk\bin
    d:\jdk1.4.0\bin\java Publish
    End Run.bat
    Begin webtogo.ora
    USE_SYSTEM_CLASSPATH = NO
    MODE = SERVER
    PORT = 80
    BASE_URL=/webtogo
    ADMIN_TNS_NAME=WEBTOGO.WORLD
    ADMIN_JDBC_URL=jdbc:oracle:oci8:@WEBTOGO.WORLD
    APPLET_USE_THIN_JDBC = YES
    THIN_JDBC_URL=jdbc:oracle:thin:@YGGDRASILL:1521:FIA.YGGDRASILL.CFR.MSSTATE.EDU
    SITE_OFFLINE_PERIOD=0
    CUSTOM_WORKSPACE=no
    CUSTOM_DIRECTORY=myworkspace
    DEFAULT_PAGE=myfirstpage.html
    ADMIN_USER=8B37E78535B55525292A3A2929292999
    ADMIN_PASSWORD=873515A838B85828292A3A2929292999
    [EXTERNAL_AUTHENTICATION]
    #CLASS=com.acme.SampleAuthenticator
    # Web-to-go workspace's font
    FONT_NAME=Arial
    [FILESYSTEM]
    #ROOT_DIR=%WEBTOGO_HOME%\server
    #TYPE=O8
    #TYPE=OL
    #TYPE=OS
    # Cache size in MBs
    #CACHE_SIZE=10
    MAX_CONNECTIONS=4
    [DEBUG]
    #ENABLE=YES
    # The log file name.
    #LOG_FILE=test.log
    # Machine name and port where wsh.exe -m is running. Web-to-go
    # will send debug output to that machine.
    #MACHINE=
    #PORT=100
    [APPLICATIONS]
    XMLFILE = ws1.xml
    PACK_HELP=D:\OraLite501\mobile\doc\wtg\html\wtgdep.htm
    [PUBLIC]
    oracle.lite.sync.ConsolidatorServlet=/Consolidator
    [CONSOLIDATOR]
    # Installer will change these values
    SERVER_VERSION=8.1.5
    # 8.0.5 or 8.1.5
    # Installer won't change these values
    MAX_THREADS=3
    JDBC_DRIVER=oracle.jdbc.driver.OracleDriver
    CREATE_USER_OPTIONS_O8I=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS TEMPORARY TABLESPACE INDX QUOTA UNLIMITED ON INDX
    CREATE_USER_OPTIONS_O8=PROFILE CONSOLIDATOR_CLIENT_P DEFAULT TABLESPACE USR QUOTA UNLIMITED ON USR
    TEMPORARY TABLESPACE TEMPORARY QUOTA UNLIMITED ON TEMPORARY
    TEMP=c:\\temp
    WTG_PROXY_PORT=80
    TRACE=NO
    TRACE_ALL=NO
    End webtogo.ora
    Begin Mobile Server tnsnames.ora file
    # TNSNAMES.ORA Network Configuration File: D:\OraLite501\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    WEBTOGO.WORLD =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    WEBTOGO.WORLD.YGG =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = YGGDRASILL.CFR.MSSTATE.EDU)(PORT = 1521))
    (CONNECT_DATA =
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    End Mobile Server tnsnames.ora file
    Begin Database tnsnames.ora file
    # TNSNAMES.ORA Network Configuration File: D:\oracle\ora92\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    INST1_HTTP.CFR.MSSTATE.EDU =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = SHARED)
    (SERVICE_NAME = MODOSE)
    (PRESENTATION = http://HRService)
    FIA.CFR.MSSTATE.EDU =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    FIA.YGGDRASILL.CFR.MSSTATE.EDU =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    FIA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    FIA.YGG =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = yggdrasill.cfr.msstate.edu)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = FIA.YGGDRASILL.CFR.MSSTATE.EDU)
    EXTPROC_CONNECTION_DATA.CFR.MSSTATE.EDU =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    End Database tnsnames.ora file

  • Company code and Purchase Org during vendor registration

    Hi,
    I have one enterprise context, with many company codes and purchasing org.
    I am aware that vendor master data is at enterprise level in ESO. However while integrating to backend i need to capture the relevant co code and Purchasing org.
    When the Purchaser wants to create a vendor, there does not seem anyway to enter which Purchasing org and company code the vendor should be created for.
    Need your suggestions for the following options
    1) capture co code and Purchasing org on bespoke fields and then in PI, pass these values to Co code and Purch org resp
    2) create company contexts - would this resolve this? what are the implications if one vendor needs to be extended to multiple co codes
    regards
    Subrote

    Hi,
    Have you imported integration config workbook.
    As part of ECC integartion  guide we have couple of workbook and XML needs to integrated, which will create all the required extension for vendor master and vendor registration.
    Once you imported the integration workbook, you will able to see the company code and purchasing org screens in vendor master.
    Thank you,
    Mani

  • Working fine with JAVA code and Error Occured while using in JSP

    Hi.....
    When initiating a BPEL process from JAVA the code is working fine and the Process is getting initiated.But while using that code in J2EE project as a java code and while calling that method Error is occuring.....
    Here by i am attaching my JAVA Code which runs as an applicateion and package which runs in Server....
    JAVA Code (Run as Application) Working Fine:
    package bo;
    import com.oracle.bpel.client.Locator;
    import com.oracle.bpel.client.NormalizedMessage;
    import com.oracle.bpel.client.delivery.IDeliveryService;
    import java.util.Map;
    import java.util.Properties;
    import oracle.xml.parser.v2.XMLElement;
    /*import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest ;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession; */
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    public class processit {
         public static void main(String args[]){
              String input = "TATA";
              String xmlInput= "<ns1:AccessDBBPELProcessRequest xmlns:ns1=\"http://xmlns.oracle.com/AccessDBBPEL\"><ns1:input>"+input+"</ns1:input></ns1:AccessDBBPELProcessRequest>";
              String xml="<ns1:BPELProcess1ProcessRequest xmlns:ns1=\"http://xmlns.oracle.com/BPELProcess1\">";
              xml=xml+"<ns1:input>"+input+"</ns1:input>";
              xml=xml+"</ns1:BPELProcess1ProcessRequest>";
              try{
              Properties props=new Properties();
              props.setProperty("orabpel.platform","ias_10g");
              props.setProperty("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory");
              props.setProperty("java.naming.provider.url","opmn:ormi://157.227.132.226:6003:home/orabpel");
              props.setProperty("java.naming.security.principal","oc4jadmin");
              props.setProperty("java.naming.security.credentials","oc4jadmin");
              props.setProperty("dedicated.rmicontext", "true");
              Locator locator = new Locator("default", "bpel", props);
              System.out.println("After creating the locator object......");
              IDeliveryService deliveryService =(IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME);
              System.out.println("Before creating the NormalizedMessage object......");
              NormalizedMessage nm = new NormalizedMessage();
              System.out.println("After creating the NormalizedMessage object.*.*.*...");
              nm.addPart("payload", xml);
              System.out.println("Before creating response object......");
              NormalizedMessage res = deliveryService.request("BPELProcess1", "process", nm);
              System.out.println("After calling the BPELProcess1 .*.*.*...");
              Map payload = res.getPayload();
              System.out.println("BPEL called");
              XMLElement xmlEl=(oracle.xml.parser.v2.XMLElement)payload.get("payload");
              String replyText=xmlEl.getText();
              System.out.println("Reply from BPEL Process>>>>>>>>>>>>> "+replyText);
              catch (Exception e) {
              System.out.println("Exception : "+e);
              e.printStackTrace();
    JSP and Java Method Used:
    JSP Code:
    ===============
    <%@ page import=" bo.callbpel" %>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>FEATT - I30</title>
    </head>
    <body>
    <%
    String input=request.getParameter("dnvalue");
    callbpel p=new callbpel();
    String Output=p.Initiate(input);
    out.print("The Input Given to the BPEL Process is : "+input);
    %>
    <BR><BR><BR><BR><BR><BR>
    <%
    out.print("The Reply from BPEL Process is : "+Output);
    %>
    </body>
    </html>
    Java Code:
    package bo;
    import com.oracle.bpel.client.Locator;
    import com.oracle.bpel.client.NormalizedMessage;
    import com.oracle.bpel.client.delivery.IDeliveryService;
    import java.util.Map;
    import java.util.Properties;
    import oracle.xml.parser.v2.XMLElement;
    /*import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest ;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession; */
    //import java.util.*;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    public class callbpel {
         public String Initiate(String value){
              String replyText=null;
              String input = value;
              System.out.println(input);
              String xmlInput= "<ns1:AccessDBBPELProcessRequest xmlns:ns1=\"http://xmlns.oracle.com/AccessDBBPEL\"><ns1:input>"+input+"</ns1:input></ns1:AccessDBBPELProcessRequest>";
              String xml="<ns1:BPELProcess1ProcessRequest xmlns:ns1=\"http://xmlns.oracle.com/BPELProcess1\">";
              xml=xml+"<ns1:input>"+input+"</ns1:input>";
              xml=xml+"</ns1:BPELProcess1ProcessRequest>";
              try{
              Properties props=new Properties();
              props.setProperty("orabpel.platform","ias_10g");
              props.setProperty("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory");
              props.setProperty("java.naming.provider.url","opmn:ormi://157.227.132.226:6003:home/orabpel");
              props.setProperty("java.naming.security.principal","oc4jadmin");
              props.setProperty("java.naming.security.credentials","oc4jadmin");
              props.setProperty("dedicated.rmicontext", "true");
              Locator locator = new Locator("default", "bpel", props);
              String uniqueBpelId = com.collaxa.cube.util.GUIDGenerator.generateGUID();
              //System.out.println(uniqueBpelId);
              //java.util.Map msgProps = new HashMap();
              System.out.println("After creating the locator object......");
              IDeliveryService deliveryService =(IDeliveryService)locator.lookupService(IDeliveryService.SERVICE_NAME);
              System.out.println("Before creating the NormalizedMessage object......");
              NormalizedMessage nm = new NormalizedMessage();
              System.out.println("After creating the NormalizedMessage object.*.*.*...");
              //msgProps.put("conversationId",uniqueBpelId);
              //nm.setProperty("conversationId",uniqueBpelId);
              nm.addPart("payload", xml);
              System.out.println("Before creating response object......");
              NormalizedMessage res = deliveryService.request("BPELProcess1", "process", nm);
              System.out.println("After calling the BPELProcess1 .*.*.*...");
              Map payload = res.getPayload();
              System.out.println("BPEL called");
              XMLElement xmlEl=(oracle.xml.parser.v2.XMLElement)payload.get("payload");
              replyText=xmlEl.getText();
              System.out.println("Reply from BPEL Process>>>>>>>>>>>>> "+replyText);
              catch (Exception e) {
              System.out.println("Exception : "+e);
              e.printStackTrace();
              return replyText;
    While Creating and Object for the Class callbpel and Whilw Calling that Method
    callbpel p=new callbpel();
    String Output=p.Initiate(input);
    Its throwing an Error:
    Error Occured is:
    After creating the locator object......
    Before creating the NormalizedMessage object......
    After creating the NormalizedMessage object.*.*.*...
    Before creating response object......
    Apr 24, 2008 9:12:00 AM org.apache.catalina.core.StandardWrapperValve invoke
    SEVERE: Servlet.service() for servlet jsp threw exception
    java.lang.NoClassDefFoundError: javax/ejb/EJBException
         at com.oracle.bpel.client.util.ExceptionUtils.handleServerException(ExceptionUtils.java:76)
         at com.oracle.bpel.client.delivery.DeliveryService.getDeliveryBean(DeliveryService.java:254)
         at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:83)
         at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:53)
         at bo.callbpel.Initiate(callbpel.java:55)
         at org.apache.jsp.output_jsp._jspService(output_jsp.java:55)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
         at java.lang.Thread.run(Unknown Source)
    For Running JSP i am Using Eclipse 3.2.0 and apache-tomcat-5.5.25
    Please Provide me a Solution......
    Thanks in Advance.....
    Regards,
    Suresh K

    A JSP is not the same as a Java application. A Java application has package statment, import statements, try/catch block, a JSP doesn't.

Maybe you are looking for

  • Where can I find this Sony Vegas effect in Final Cut Pro X?

    Hi all, I have posted a video link below.  If you watch between :26 and :45 (and throughout the video) you will see a sort of "flashing" effect that happens as a transition between screens.  I have tried splitting screens and adding gaps but that doe

  • Custom variant for FBL5N

    Hello Experts, I have created a variant as CUS&TEST for FBL5N with some values and changed the txn FBL5N to add the 'start with variant. When i execute FBL5N when i choose any layout on selection screen, execute and come out of FBL5N. When i reexecut

  • I have deleted users but the free space is not available what did I do wrong

    Not sure what has happened.  I deleted a user and it should have freed up about 150gb of hard drive space.  It hasn't, when I go to about this make and click on storage it is still showing 100gb of space for movies, and 40gb for other, and 10gb for m

  • To buy or not to buy the iphone 4

    hey guys, i kno im new here but thought id share my thoughts. ive neva had an phone before, used to have a nokia n96 and decided to buy the iphone 3gs back in feb this yr from the apple store which cost me £450. i gotta say its an awesome phone ( hav

  • ORA-32304 Error

    Hi, I am trying to create a materalized view with ON PREBUILT table option,containing spatial data.Getting a an oracle error (ORA-32204-materialized views with user-defined types cannot use prebuilt table) Oracle Version : 9.2.0.5 on HP UX Any work a