473,471 Members | 2,140 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

Code Working in IE but not in Firefox

11 New Member
Hi,

I am working in JSP code.A Menubar is displayed in JSP page.It's working fine in IE. But in case of firefox the very first menuitem is not working.If i move that menu item as second means it's working fine.Can anyone help me on this.

XML code used:


Expand|Select|Wrap|Line Numbers
  1.  <menubar key="menubar_home" url="Home.do"/>Home
  2.  
  3.  
  4.         <!-- CAs Menu -->
  5.         <menubar key="menubar_cas" url="CASearch.do">CAs
  6.             <menuitem key="CASearch" url="CASearch.do"/>CASearch
  7.             <menuitem key="CAAdd" url="CAAdd.do"/>CAAdd
  8.         </menubar>
  9.  
  10.         <!-- Signers Menu -->
  11.         <menubar key="menubar_signers" url="SignerSearch.do">Signers
  12.             <menuitem key="SignerSearch" url="SignerSearch.do"/>SignerSearch
  13.             <menuitem key="SignerAdd" url="SignerAdd.do"/>SignerAdd
  14.         </menubar>
  15.  
  16.         <!-- Status Sources Menu -->
  17.         <menubar key="menubar_statussources" url="StatusSourceSearch.do">StatusSources
  18.             <menuitem key="StatusSourceSearch" url="StatusSourceSearch.do"/>StatusSourceSearch
  19.             <menuitem key="StatusSourceAdd" url="StatusSourceAdd.do"/>StatusSourceAdd
  20.         </menubar>
  21.  
  22.         <!-- System Menu -->
  23.         <menubar key="menubar_system" url="SystemOverview.do">System
  24.             <menuitem key="Overview" url="SystemOverview.do"/>Overview
  25.             <menuitem key="SystemSettings" url="SystemSettings.do"/>SystemSettings
  26.             <menuitem key="EventLogging" url="SystemEventLogging.do"/>EventLogging
  27.             <menuitem key="OCSP" url="SystemOCSPConfig.do"/>OCSP
  28.             <menuitem key="SyncClients" url="SystemSyncClientSearch.do"/>SyncClients
  29.             <menuitem key="ClusterNodes" url="SystemClusterNodeSearch.do"/>ClusterNodes
  30.         </menubar>
  31.  
  32.  
JSP code :

[html]<script language="JavaScript" src="scripts/overlib_mini.js"></script>

<script language="JavaScript1.2" >
oM=new makeCM("oM"); oM.resizeCheck=1; oM.rows=1; oM.offlineRoot=""; oM.onlineRoot=""; oM.pxBetween =0;
oM.fillImg="images/cm_fill.gif"; oM.fromTop=<%=WebAppUtils.getString(resourceBundle , "menu_mainOffsetFromTop", true)%>; oM.fromLeft=10; oM.wait=300; oM.zIndex=400;
oM.useBar=1; oM.barWidth="menu"; oM.barHeight="menu"; oM.barX="menu";oM.barY="menu"; oM.barClass="clBar";
oM.barBorderX=0; oM.barBorderY=0;

oM.level[0]=new cm_makeLevel(130,18,"clT","clTover",1,1,"clB",0,"b ottom",0,-1,0,0,0);
oM.level[1]=new cm_makeLevel(165,18,"clS","clSover",1,1,"clB",0,"r ight",-10,0,"images/caret_gray.gif",10,10);

<% for (int i = 0; i < mainMenuVector.size(); i++) {
WrapMenuItem mi = (WrapMenuItem)mainMenuVector.get(i);
String label = mi.getLabel();
if (mi.getSelected().equals("true")) {
label = "<b>" + mi.getLabel() + "</b>";
}
if (mi.isOnclickEnabled() == false) { %>
oM.makeMenu("<%=mi.getCoolMenuID()%>","<%=mi.getCo olMenuParentID()%>","<%="&nbsp;" + label%>","<%=mi.getUrl()%>","","<%=mi.getWidth()%> ");
<% } else { %>
oM.makeMenu("<%=mi.getCoolMenuID()%>","<%=mi.getCo olMenuParentID()%>","<%="&nbsp;" + label%>","","","<%=mi.getWidth()%>","","","","","" ,"","","","<%=mi.getUrl()%>");
<% } %>
<% } %>
<% if (mainMenuVector.size() > 0) { %>
oM.menuPlacement="0"
oM.construct()
<% } %>
</script>[/HTML]
Aug 29 '07 #1
26 2331
dmjpro
2,476 Top Contributor
Welcome to TSDN.
U better to use code tags.

Kind regards,
Dmjpro.
Aug 29 '07 #2
Jenitha S
11 New Member
I can't get you.What tags i have to add.
Aug 29 '07 #3
acoder
16,027 Recognized Expert Moderator MVP
I can't get you.What tags i have to add.
Use CODE tags when posting code. I've added them for you in your original post. It makes code much easier to read. See the Reply/Posting Guidelines on the right next time you post.
Aug 29 '07 #4
dmjpro
2,476 Top Contributor
I can't get you.What tags i have to add.
Means whenever You post your code then look at the right side then you can see Reply Guidelines.
Follow that then it will be easier to solve your problem.
Ok.

Kind regards,
Dmjpro.
Aug 29 '07 #5
acoder
16,027 Recognized Expert Moderator MVP
Are you using Javascript or JSP to generate this menu? Do you get any errors? If so, what are the error messages?
Aug 29 '07 #6
Jenitha S
11 New Member
Are you using Javascript or JSP to generate this menu? Do you get any errors? If so, what are the error messages?

JSP is used.In some log file this message is recorded.

61: java.lang.Thread.run(Thread.java:534)
jndi:/localhost/WEB-INF/wrapMenu.xml is not well-formed.
Error on line 11 of document jndi:/localhost/WEB-INF/wrapMenu.xml: The end-tag for element type "menu" must end with a '>' delimiter.
jndi:/localhost/WEB-INF/wrapMenu.xml is not well-formed.
Error on line 63 of document jndi:/localhost/WEB-INF/wrapMenu.xml: The element type "menubar" must be terminated by the matching end-tag "</menubar>".
jndi:/localhost/WEB-INF/wrapMenu.xml is not well-formed.
Aug 29 '07 #7
dmjpro
2,476 Top Contributor
JSP is used.In some log file this message is recorded.

61: java.lang.Thread.run(Thread.java:534)
jndi:/localhost/WEB-INF/wrapMenu.xml is not well-formed.
Error on line 11 of document jndi:/localhost/WEB-INF/wrapMenu.xml: The end-tag for element type "menu" must end with a '>' delimiter.
jndi:/localhost/WEB-INF/wrapMenu.xml is not well-formed.
Error on line 63 of document jndi:/localhost/WEB-INF/wrapMenu.xml: The element type "menubar" must be terminated by the matching end-tag "</menubar>".
jndi:/localhost/WEB-INF/wrapMenu.xml is not well-formed.
It is impossible.
This is Server Side Problem.
If your code works in IE then your in Mozilla you will find it works fine.
What I think.

Kind regards,
Dmjpro.
Aug 29 '07 #8
Jenitha S
11 New Member
It have to work but it's not working.
Aug 29 '07 #9
acoder
16,027 Recognized Expert Moderator MVP
You're missing an ending menubar tag for the first ("Home") tag.

This is a JSP problem. I'll move this to the Java forum where you're more likely to solve your problem.
Aug 29 '07 #10
Jenitha S
11 New Member
You're missing an ending menubar tag for the first ("Home") tag.

This is a JSP problem. I'll move this to the Java forum where you're more likely to solve your problem.
Ya I have tried that alraeady.After that menubar is not getting displayed as whole.
Aug 29 '07 #11
dmjpro
2,476 Top Contributor
It have to work but it's not working.
I think the whole problem is with XML parsing.
IE supports but Mozilla does not.

I am trying to rectify the XML file you have.
Try this one i think it will work.

<XML>
<menubar key="menubar_home" url="Home.do">Home</menubar>
<menubar key="menubar_cas" url="CASearch.do">CAs
<menuitem key="CASearch" url="CASearch.do">CASearch</menuitem>
<menuitem key="CAAdd" url="CAAdd.do">CAAdd</menuitem>
</menubar>
<menubar key="menubar_signers" url="SignerSearch.do">Signers
<menuitem key="SignerSearch" url="SignerSearch.do">SignerSearch</menuitem>
<menuitem key="SignerAdd" url="SignerAdd.do">SignerAdd</menuitem>
</menubar>
<menubar key="menubar_statussources" url="StatusSourceSearch.do">StatusSources
<menuitem key="StatusSourceSearch" url="StatusSourceSearch.do">StatusSourceSearch</menuitem>
<menuitem key="StatusSourceAdd" url="StatusSourceAdd.do">StatusSourceAdd</menuitem>
</menubar>
<menubar key="menubar_system" url="SystemOverview.do">System
<menuitem key="Overview" url="SystemOverview.do">Overview</menuitem>
<menuitem key="SystemSettings" url="SystemSettings.do">SystemSettings</menuitem>
<menuitem key="EventLogging" url="SystemEventLogging.do">EventLogging</menuitem>
<menuitem key="OCSP" url="SystemOCSPConfig.do">OCSP</menuitem>
<menuitem key="SyncClients" url="SystemSyncClientSearch.do">SyncClients</menuitem>
<menuitem key="ClusterNodes" url="SystemClusterNodeSearch.do">ClusterNodes</menuitem>
</menubar>
</XML>

Try this one i think it will work.

Kind regards,
Dmjpro.
Aug 29 '07 #12
Nepomuk
3,112 Recognized Expert Specialist
Dear Dmjpro!
You might want to use CODE Tags! :-P

Expand|Select|Wrap|Line Numbers
  1. <XML>
  2.     <menubar key="menubar_home" url="Home.do">Home</menubar>
  3.     <menubar key="menubar_cas" url="CASearch.do">CAs
  4.         <menuitem key="CASearch" url="CASearch.do">CASearch</menuitem>
  5.          <menuitem key="CAAdd" url="CAAdd.do">CAAdd</menuitem>
  6.     </menubar>
  7.     <menubar key="menubar_signers" url="SignerSearch.do">Signers
  8.         <menuitem key="SignerSearch" url="SignerSearch.do">SignerSearch</menuitem>
  9.         <menuitem key="SignerAdd" url="SignerAdd.do">SignerAdd</menuitem>
  10.     </menubar>
  11.     <menubar key="menubar_statussources" url="StatusSourceSearch.do">StatusSources
  12.         <menuitem key="StatusSourceSearch" url="StatusSourceSearch.do">StatusSourceSearch</menuitem>
  13.         <menuitem key="StatusSourceAdd" url="StatusSourceAdd.do">StatusSourceAdd</menuitem>
  14.     </menubar>
  15.     <menubar key="menubar_system" url="SystemOverview.do">System
  16.         <menuitem key="Overview" url="SystemOverview.do">Overview</menuitem>
  17.         <menuitem key="SystemSettings" url="SystemSettings.do">SystemSettings</menuitem>
  18.         <menuitem key="EventLogging" url="SystemEventLogging.do">EventLogging</menuitem>
  19.         <menuitem key="OCSP" url="SystemOCSPConfig.do">OCSP</menuitem>
  20.         <menuitem key="SyncClients" url="SystemSyncClientSearch.do">SyncClients</menuitem>
  21.         <menuitem key="ClusterNodes" url="SystemClusterNodeSearch.do">ClusterNodes</menuitem>
  22.     </menubar>
  23. </XML>
  24.  
Aug 29 '07 #13
dmjpro
2,476 Top Contributor
Sorry....nepomuk's.
Actually then I was in hurry.
That's why I forgot to use the Code Tag.
Second time it will never happen.
OK.

Kind regards,
Dmjpro.
Aug 29 '07 #14
Jenitha S
11 New Member
Sorry....nepomuk's.
Actually then I was in hurry.
That's why I forgot to use the Code Tag.
Second time it will never happen.
OK.

Kind regards,
Dmjpro.
No if i close those tags means none of the menuitems doesn't get displayed.
Aug 29 '07 #15
drhowarddrfine
7,435 Recognized Expert Expert
I think the whole problem is with XML parsing.
IE supports but Mozilla does not.
Hm. XML works just fine in Firefox.
Aug 29 '07 #16
acoder
16,027 Recognized Expert Moderator MVP
I think the whole problem is with XML parsing.
IE supports but Mozilla does not.
IE supports probably with ActiveX. Firefox is much better and more standards-compliant when dealing with XML.
Aug 29 '07 #17
Jenitha S
11 New Member
Actually this is the code that parses the XML code.

Expand|Select|Wrap|Line Numbers
  1.  
  2. import java.io.*;
  3. import java.util.Enumeration;
  4. import java.util.Iterator;
  5. import java.util.Vector;
  6. import org.apache.xerces.parsers.DOMParser ;
  7. import org.xml.sax.SAXException;
  8. import java.io.IOException;
  9. import org.w3c.dom.Document;
  10. import org.w3c.dom.Node;
  11. import org.w3c.dom.Element;
  12. import org.w3c.dom.NodeList;
  13.  
  14. /**
  15.  * Generates handler code and associated property files for specified screens.
  16.  *
  17.  * Created by IntelliJ IDEA.
  18.  * User: sfalby
  19.  * Date: Sep 12, 2003
  20.  * Time: 10:34:50 AM
  21.  * To change this template use Options | File Templates.
  22.  */
  23. public class ScreenGenerator {
  24.  
  25.     private static final boolean overwrite = true;
  26.  
  27.     public static void main(String[] args) {
  28.  
  29.         try {
  30.  
  31.             // check arguments
  32.             if (args.length != 7) {
  33.                 System.err.println("HandlerGenerator error : arguments incorrect");
  34.                 return;
  35.             }
  36.  
  37.             // generate
  38.             generate(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
  39.         }
  40.         catch (Exception e) {
  41.             System.err.println("HandlerGenerator error : " + e.getMessage());
  42.             e.printStackTrace();
  43.         }
  44.     }
  45.  
  46.     /**
  47.      * Generates handler classes and property files.
  48.      *
  49.      * @param handlerDestDir destination for handler class files
  50.      * @param handlerPackage package for handler classes
  51.      * @param propertyDestDir destination for property files
  52.      * @param languageSuffix language suffix appended to end of property file name
  53.      * @param screensFile file containing screen descriptions
  54.      * @param menuFile wrap menu file
  55.      * @param forwardsFile global forwards file
  56.      */
  57.     public static void generate(
  58.         String handlerDestDir,
  59.         String handlerPackage,
  60.         String propertyDestDir,
  61.         String languageSuffix,
  62.         String screensFile,
  63.         String menuFile,
  64.         String forwardsFile)
  65.     throws IOException, SAXException {
  66.  
  67.         // get screens
  68.         Vector screens = getScreens(screensFile);
  69.  
  70.         // iterate through screens
  71.         Vector screenNames = new Vector();
  72.         for (int i = 0; i < screens.size(); i++) {
  73.  
  74.             // get next screen
  75.             Element screen = (Element)screens.get(i);
  76.  
  77.             // get screen name
  78.             String screenName = screen.getAttribute("screenName");
  79.             System.out.println("screenName = " + screenName);
  80.  
  81.             // get property template
  82.             String propertyTemplate = screen.getAttribute("propertyTemplate");
  83.             System.out.println("     propertyTemplate = " + propertyTemplate);
  84.  
  85.             // get handler template
  86.             String handlerTemplate = screen.getAttribute("handlerTemplate");
  87.             System.out.println("     handlerTemplate = " + handlerTemplate);
  88.  
  89.             // get handler class name
  90.             String handlerClassname = screenName + "Handler";
  91.             System.out.println("     handlerClassname = " + handlerClassname);
  92.  
  93.             // get handler base class
  94.             String handlerBaseClassname = screen.getAttribute("handlerBaseClass");
  95.             System.out.println("     handlerBaseClass = " + handlerBaseClassname);
  96.  
  97.             // get handler file path
  98.             String handlerFilePath = handlerDestDir + "\\" + handlerClassname + ".java";
  99.  
  100.             // create handler file
  101.             createHandlerFile(handlerTemplate, handlerFilePath, handlerPackage, handlerClassname, handlerBaseClassname, screenName);
  102.  
  103.             // get property file path
  104.             String propertyFilePath = propertyDestDir + "\\" + screenName + languageSuffix + ".properties";
  105.  
  106.             // create property file
  107.             createPropertyFile(propertyTemplate, propertyFilePath, screenName, handlerBaseClassname);
  108.  
  109.             // add screen name
  110.             screenNames.add(screenName);
  111.         }
  112.  
  113.         // create menus
  114.         createMenus(menuFile, screenNames);
  115.  
  116.         // create global forwards
  117.         createGlobalForwards(forwardsFile, screenNames);
  118.     }
  119.  
  120.     //////////////////////////////////////////////////////////
  121.     // Private Functions
  122.     //////////////////////////////////////////////////////////
  123.  
  124.     private static Vector getScreens(String screensFile)
  125.     throws SAXException, IOException {
  126.  
  127.         // create xerces DOM parser
  128.         DOMParser  parser = new DOMParser ();
  129.  
  130.         // parse file
  131.         parser.parse(screensFile);
  132.  
  133.         // get document
  134.         Document document = parser.getDocument();
  135.  
  136.  
  137.  
  138.         // traverse tree
  139.         Vector screens = new Vector();
  140.         traverse(document, screens);
  141.  
  142.         // return results
  143.         return screens;
  144.     }
  145.  
  146.     private static void traverse (Node node, Vector nodes) {
  147.  
  148.         // get type
  149.         int type = node.getNodeType();
  150.  
  151.         // add element nodes
  152.         if (node.getNodeName().equals("screen") && type == Node.ELEMENT_NODE)
  153.             nodes.add(node);
  154.  
  155.         // check if children nodes exist
  156.         NodeList children = node.getChildNodes();
  157.         if (children != null) {
  158.             for (int i=0; i< children.getLength(); i++)
  159.                 traverse (children.item(i), nodes);
  160.         }
  161.     }
  162.  
  163.     private static void createHandlerFile(
  164.         String templateFile,
  165.         String handlerFile,
  166.         String handlerPackage,
  167.         String handlerClassname,
  168.         String handlerBaseClassname,
  169.         String screenName)
  170.     throws IOException {
  171.  
  172.         // check if file exista
  173.         if (!overwrite) {
  174.             File f = new File(handlerFile);
  175.             if (f.exists()) {
  176.                 System.err.println(handlerFile + " already exists");
  177.                 return;
  178.             }
  179.         }
  180.  
  181.         // set up file reader and writer
  182.         BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(templateFile)));
  183.         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(handlerFile)));
  184.  
  185.         // iterate through template file
  186.         String line = null;
  187.         while((line = reader.readLine()) != null) {
  188.  
  189.             // replace text
  190.             line = line.replaceAll("<PACKAGE>", handlerPackage);
  191.             line = line.replaceAll("<CLASS>", handlerClassname);
  192.             line = line.replaceAll("<BASECLASS>", handlerBaseClassname);
  193.             line = line.replaceAll("<SCREEN>", screenName);
  194.  
  195.             // write line
  196.             writer.write(line + "\r\n");
  197.             writer.flush();
  198.         }
  199.  
  200.         // close resources
  201.         reader.close();
  202.         writer.close();
  203.     }
  204.  
  205.     private static void createPropertyFile(
  206.         String templateFile,
  207.         String propertyFile,
  208.         String screenName,
  209.         String handlerBaseClassname)
  210.     throws IOException {
  211.  
  212.         // check if file exista
  213.         if (!overwrite) {
  214.             File f = new File(propertyFile);
  215.             if (f.exists()) {
  216.                 System.err.println(propertyFile + " already exists");
  217.                 return;
  218.             }
  219.         }
  220.  
  221.         // set up file reader and writer
  222.         BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(templateFile)));
  223.         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(propertyFile)));
  224.  
  225.         // iterate through template file
  226.         String line = null;
  227.         while((line = reader.readLine()) != null) {
  228.  
  229.             // replace text
  230.             line = line.replaceAll("<SCREEN TITLE>", screenName);
  231.             line = line.replaceAll("<SCREEN>", screenName);
  232.  
  233.             // write line
  234.             writer.write(line + "\r\n");
  235.             writer.flush();
  236.         }
  237.  
  238.         // close resources
  239.         reader.close();
  240.         writer.close();
  241.     }
  242.  
  243.     private static void createMenus(
  244.         String menuFile,
  245.         Vector screenNames)
  246.     throws IOException {
  247.  
  248.         boolean generatedMenu = false;
  249.  
  250.         // set up file reader and writer
  251.         BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(menuFile)));
  252.         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(menuFile + ".temp")));
  253.  
  254.         // iterate through menu file
  255.         String line = null;
  256.         while((line = reader.readLine()) != null) {
  257.  
  258.             // find place holder
  259.             if (line.indexOf("Generated Screens Start") >= 0) {
  260.  
  261.                 // set flag
  262.                 generatedMenu = true;
  263.  
  264.                 // write place holder
  265.                 writer.write(line + "\r\n");
  266.  
  267.                 // iterate through screens
  268.                 for (Iterator i = screenNames.iterator(); i.hasNext();) {
  269.  
  270.                     // get next screen name
  271.                     String screenName = (String)i.next();
  272.  
  273.                     // write menu
  274.                     writer.write("          <menuitem key=\"" + screenName + "\" url=\"" + screenName + ".do\"/>"  + "\r\n");
  275.                 }
  276.             }
  277.             else if (line.indexOf("Generated Screens End") >= 0) {
  278.  
  279.                 // reset flag
  280.                 generatedMenu = false;
  281.  
  282.                 // write place holder
  283.                 writer.write(line + "\r\n");
  284.             }
  285.             else if (generatedMenu) {
  286.                 // ignore existing generated screens
  287.             }
  288.             else {
  289.                 writer.write(line + "\r\n");
  290.             }
  291.             writer.flush();
  292.         }
  293.  
  294.         // close resources
  295.         reader.close();
  296.         writer.close();
  297.  
  298.         // switch files
  299.         File fromMenu = new File(menuFile + ".temp");
  300.         File toMenu = new File(menuFile);
  301.         copyFile(fromMenu, toMenu);
  302.  
  303.         // delete temp file
  304.         fromMenu.delete();
  305.     }
  306.  
  307.     private static void createGlobalForwards(
  308.             String forwardsFile,
  309.             Vector screenNames)
  310.     throws IOException {
  311.  
  312.         boolean generatedForward = false;
  313.  
  314.         // set up file reader and writer
  315.         BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(forwardsFile)));
  316.         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(forwardsFile + ".temp")));
  317.  
  318.         // iterate through menu file
  319.         String line = null;
  320.         while((line = reader.readLine()) != null) {
  321.  
  322.             // find place holder
  323.             if (line.indexOf("Generated Forwards Start") >= 0) {
  324.  
  325.                 // set flag
  326.                 generatedForward = true;
  327.  
  328.                 // write place holder
  329.                 writer.write(line + "\r\n");
  330.  
  331.                 // iterate through screens
  332.                 for (Iterator i = screenNames.iterator(); i.hasNext();) {
  333.  
  334.                     // get next screen name
  335.                     String screenName = (String)i.next();
  336.  
  337.                     // write forward
  338.                     writer.write("          <forward name=\"" + screenName + "\" path=\"/" + screenName + ".do\"/>"  + "\r\n");
  339.                 }
  340.             }
  341.             else if (line.indexOf("Generated Forwards End") >= 0) {
  342.  
  343.                 // reset flag
  344.                 generatedForward = false;
  345.  
  346.                 // write place holder
  347.                 writer.write(line + "\r\n");
  348.             }
  349.             else if (generatedForward) {
  350.                 // ignore existing generated forwards
  351.             }
  352.             else {
  353.                 writer.write(line + "\r\n");
  354.             }
  355.             writer.flush();
  356.         }
  357.  
  358.         // close resources
  359.         reader.close();
  360.         writer.close();
  361.  
  362.         // switch files
  363.         File fromMenu = new File(forwardsFile + ".temp");
  364.         File toMenu = new File(forwardsFile);
  365.         copyFile(fromMenu, toMenu);
  366.  
  367.         // delete temp file
  368.         fromMenu.delete();
  369.     }
  370.  
  371.     private static void copyFile(File fromFile, File toFile)
  372.     throws IOException {
  373.         FileInputStream in  = new FileInputStream(fromFile);
  374.         FileOutputStream out = new FileOutputStream(toFile);
  375.         byte[] buf = new byte[1024];
  376.         int i = 0;
  377.         while((i=in.read(buf))!=-1)
  378.             out.write(buf, 0, i);
  379.         in.close();
  380.         out.close();
  381.     }
  382. }
Aug 30 '07 #18
dmjpro
2,476 Top Contributor
Hi Jenitha did you try my XML File?

Try this one it will work.
Expand|Select|Wrap|Line Numbers
  1. <XML>
  2. <menubar key="menubar_home" url="Home.do">Home</menubar>
  3. <menubar key="menubar_cas" url="CASearch.do">CAs
  4. <menuitem key="CASearch" url="CASearch.do">CASearch</menuitem>
  5. <menuitem key="CAAdd" url="CAAdd.do">CAAdd</menuitem>
  6. </menubar>
  7. <menubar key="menubar_signers" url="SignerSearch.do">Signers
  8. <menuitem key="SignerSearch" url="SignerSearch.do">SignerSearch</menuitem>
  9. <menuitem key="SignerAdd" url="SignerAdd.do">SignerAdd</menuitem>
  10. </menubar>
  11. <menubar key="menubar_statussources" url="StatusSourceSearch.do">StatusSources
  12. <menuitem key="StatusSourceSearch" url="StatusSourceSearch.do">StatusSourceSearch</menuitem>
  13. <menuitem key="StatusSourceAdd" url="StatusSourceAdd.do">StatusSourceAdd</menuitem>
  14. </menubar>
  15. <menubar key="menubar_system" url="SystemOverview.do">System
  16. <menuitem key="Overview" url="SystemOverview.do">Overview</menuitem>
  17. <menuitem key="SystemSettings" url="SystemSettings.do">SystemSettings</menuitem>
  18. <menuitem key="EventLogging" url="SystemEventLogging.do">EventLogging</menuitem>
  19. <menuitem key="OCSP" url="SystemOCSPConfig.do">OCSP</menuitem>
  20. <menuitem key="SyncClients" url="SystemSyncClientSearch.do">SyncClients</menuitem>
  21. <menuitem key="ClusterNodes" url="SystemClusterNodeSearch.do">ClusterNodes</menuitem>
  22. </menubar>
  23. </XML>
  24.  
Best of luck with your Code.

Kind regards,
Dmjpro.
Aug 30 '07 #19
Jenitha S
11 New Member
Hi Jenitha did you try my XML File?

Try this one it will work.
Expand|Select|Wrap|Line Numbers
  1. <XML>
  2. <menubar key="menubar_home" url="Home.do">Home</menubar>
  3. <menubar key="menubar_cas" url="CASearch.do">CAs
  4. <menuitem key="CASearch" url="CASearch.do">CASearch</menuitem>
  5. <menuitem key="CAAdd" url="CAAdd.do">CAAdd</menuitem>
  6. </menubar>
  7. <menubar key="menubar_signers" url="SignerSearch.do">Signers
  8. <menuitem key="SignerSearch" url="SignerSearch.do">SignerSearch</menuitem>
  9. <menuitem key="SignerAdd" url="SignerAdd.do">SignerAdd</menuitem>
  10. </menubar>
  11. <menubar key="menubar_statussources" url="StatusSourceSearch.do">StatusSources
  12. <menuitem key="StatusSourceSearch" url="StatusSourceSearch.do">StatusSourceSearch</menuitem>
  13. <menuitem key="StatusSourceAdd" url="StatusSourceAdd.do">StatusSourceAdd</menuitem>
  14. </menubar>
  15. <menubar key="menubar_system" url="SystemOverview.do">System
  16. <menuitem key="Overview" url="SystemOverview.do">Overview</menuitem>
  17. <menuitem key="SystemSettings" url="SystemSettings.do">SystemSettings</menuitem>
  18. <menuitem key="EventLogging" url="SystemEventLogging.do">EventLogging</menuitem>
  19. <menuitem key="OCSP" url="SystemOCSPConfig.do">OCSP</menuitem>
  20. <menuitem key="SyncClients" url="SystemSyncClientSearch.do">SyncClients</menuitem>
  21. <menuitem key="ClusterNodes" url="SystemClusterNodeSearch.do">ClusterNodes</menuitem>
  22. </menubar>
  23. </XML>
  24.  
Best of luck with your Code.

Kind regards,
Dmjpro.
I have tried but it's not working
Aug 30 '07 #20
dmjpro
2,476 Top Contributor
I have tried but it's not working
The Same Error Message you are facing??
Aug 30 '07 #21
acoder
16,027 Recognized Expert Moderator MVP
Jenitha, post your code again. As you'll probably have noticed, when you posted your code, it didn't appear. Split it up into smaller chunks to avoid the CODE tags bug.
Aug 30 '07 #22
Jenitha S
11 New Member
Jenitha, post your code again. As you'll probably have noticed, when you posted your code, it didn't appear. Split it up into smaller chunks to avoid the CODE tags bug.
This is the java code used to parse the xml
Expand|Select|Wrap|Line Numbers
  1. public class ScreenGenerator {
  2.  
  3.     private static final boolean overwrite = true;
  4.  
  5.     public static void main(String[] args) {
  6.  
  7.         try {
  8.  
  9.             // check arguments
  10.             if (args.length != 7) {
  11.                 System.err.println("HandlerGenerator error : arguments incorrect");
  12.                 return;
  13.             }
  14.  
  15.             // generate
  16.             generate(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
  17.         }
  18.         catch (Exception e) {
  19.             System.err.println("HandlerGenerator error : " + e.getMessage());
  20.             e.printStackTrace();
  21.         }
  22.     }
  23.  
  24.     /**
  25.      * Generates handler classes and property files.
  26.      *
  27.      * @param handlerDestDir destination for handler class files
  28.      * @param handlerPackage package for handler classes
  29.      * @param propertyDestDir destination for property files
  30.      * @param languageSuffix language suffix appended to end of property file name
  31.      * @param screensFile file containing screen descriptions
  32.      * @param menuFile wrap menu file
  33.      * @param forwardsFile global forwards file
  34.      */
  35.     public static void generate(
  36.         String handlerDestDir,
  37.         String handlerPackage,
  38.         String propertyDestDir,
  39.         String languageSuffix,
  40.         String screensFile,
  41.         String menuFile,
  42.         String forwardsFile)
  43.     throws IOException, SAXException {
  44.  
  45.         // get screens
  46.         Vector screens = getScreens(screensFile);
  47.  
  48.         // iterate through screens
  49.         Vector screenNames = new Vector();
  50.         for (int i = 0; i < screens.size(); i++) {
  51.  
  52.             // get next screen
  53.             Element screen = (Element)screens.get(i);
  54.  
  55.             // get screen name
  56.             String screenName = screen.getAttribute("screenName");
  57.             System.out.println("screenName = " + screenName);
  58.  
  59.             // get property template
  60.             String propertyTemplate = screen.getAttribute("propertyTemplate");
  61.             System.out.println("     propertyTemplate = " + propertyTemplate);
  62.  
  63.             // get handler template
  64.             String handlerTemplate = screen.getAttribute("handlerTemplate");
  65.             System.out.println("     handlerTemplate = " + handlerTemplate);
  66.  
  67.             // get handler class name
  68.             String handlerClassname = screenName + "Handler";
  69.             System.out.println("     handlerClassname = " + handlerClassname);
  70.  
  71.             // get handler base class
  72.             String handlerBaseClassname = screen.getAttribute("handlerBaseClass");
  73.             System.out.println("     handlerBaseClass = " + handlerBaseClassname);
  74.  
  75.             // get handler file path
  76.             String handlerFilePath = handlerDestDir + "\\" + handlerClassname + ".java";
  77.  
  78.             // create handler file
  79.             createHandlerFile(handlerTemplate, handlerFilePath, handlerPackage, handlerClassname, handlerBaseClassname, screenName);
  80.  
  81.             // get property file path
  82.             String propertyFilePath = propertyDestDir + "\\" + screenName + languageSuffix + ".properties";
  83.  
  84.             // create property file
  85.             createPropertyFile(propertyTemplate, propertyFilePath, screenName, handlerBaseClassname);
  86.  
  87.             // add screen name
  88.             screenNames.add(screenName);
  89.         }
  90.  
  91.         // create menus
  92.         createMenus(menuFile, screenNames);
  93.  
  94.         // create global forwards
  95.         createGlobalForwards(forwardsFile, screenNames);
  96.     }
  97.  
  98.     //////////////////////////////////////////////////////////
  99.     // Private Functions
  100.     //////////////////////////////////////////////////////////
  101.  
  102.     private static Vector getScreens(String screensFile)
  103.     throws SAXException, IOException {
  104.  
  105.         // create xerces DOM parser
  106.         DOMParser  parser = new DOMParser ();
  107.  
  108.         // parse file
  109.         parser.parse(screensFile);
  110.  
  111.         // get document
  112.         Document document = parser.getDocument();
  113.  
  114.  
  115.  
  116.         // traverse tree
  117.         Vector screens = new Vector();
  118.         traverse(document, screens);
  119.  
  120.         // return results
  121.         return screens;
  122.     }
Aug 30 '07 #23
Jenitha S
11 New Member
Continuation of that java code...

Expand|Select|Wrap|Line Numbers
  1. private static void traverse (Node node, Vector nodes) {
  2.  
  3.         // get type
  4.         int type = node.getNodeType();
  5.  
  6.         // add element nodes
  7.         if (node.getNodeName().equals("screen") && type == Node.ELEMENT_NODE)
  8.             nodes.add(node);
  9.  
  10.         // check if children nodes exist
  11.         NodeList children = node.getChildNodes();
  12.         if (children != null) {
  13.             for (int i=0; i< children.getLength(); i++)
  14.                 traverse (children.item(i), nodes);
  15.         }
  16.     }
  17.  
  18.     private static void createHandlerFile(
  19.         String templateFile,
  20.         String handlerFile,
  21.         String handlerPackage,
  22.         String handlerClassname,
  23.         String handlerBaseClassname,
  24.         String screenName)
  25.     throws IOException {
  26.  
  27.         // check if file exista
  28.         if (!overwrite) {
  29.             File f = new File(handlerFile);
  30.             if (f.exists()) {
  31.                 System.err.println(handlerFile + " already exists");
  32.                 return;
  33.             }
  34.         }
  35.  
  36.         // set up file reader and writer
  37.         BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(templateFile)));
  38.         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(handlerFile)));
  39.  
  40.         // iterate through template file
  41.         String line = null;
  42.         while((line = reader.readLine()) != null) {
  43.  
  44.             // replace text
  45.             line = line.replaceAll("<PACKAGE>", handlerPackage);
  46.             line = line.replaceAll("<CLASS>", handlerClassname);
  47.             line = line.replaceAll("<BASECLASS>", handlerBaseClassname);
  48.             line = line.replaceAll("<SCREEN>", screenName);
  49.  
  50.             // write line
  51.             writer.write(line + "\r\n");
  52.             writer.flush();
  53.         }
  54.  
  55.         // close resources
  56.         reader.close();
  57.         writer.close();
  58.     }
  59.  
  60.     private static void createPropertyFile(
  61.         String templateFile,
  62.         String propertyFile,
  63.         String screenName,
  64.         String handlerBaseClassname)
  65.     throws IOException {
  66.  
  67.         // check if file exista
  68.         if (!overwrite) {
  69.             File f = new File(propertyFile);
  70.             if (f.exists()) {
  71.                 System.err.println(propertyFile + " already exists");
  72.                 return;
  73.             }
  74.         }
  75.  
  76.         // set up file reader and writer
  77.         BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(templateFile)));
  78.         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(propertyFile)));
  79.  
  80.         // iterate through template file
  81.         String line = null;
  82.         while((line = reader.readLine()) != null) {
  83.  
  84.             // replace text
  85.             line = line.replaceAll("<SCREEN TITLE>", screenName);
  86.             line = line.replaceAll("<SCREEN>", screenName);
  87.  
  88.             // write line
  89.             writer.write(line + "\r\n");
  90.             writer.flush();
  91.         }
  92.  
  93.         // close resources
  94.         reader.close();
  95.         writer.close();
  96.     }
  97.  
  98.     private static void createMenus(
  99.         String menuFile,
  100.         Vector screenNames)
  101.     throws IOException {
  102.  
  103.         boolean generatedMenu = false;
  104.  
  105.         // set up file reader and writer
  106.         BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(menuFile)));
  107.         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(menuFile + ".temp")));
  108.  
  109.         // iterate through menu file
  110.         String line = null;
  111.         while((line = reader.readLine()) != null) {
  112.  
  113.             // find place holder
  114.             if (line.indexOf("Generated Screens Start") >= 0) {
  115.  
  116.                 // set flag
  117.                 generatedMenu = true;
  118.  
  119.                 // write place holder
  120.                 writer.write(line + "\r\n");
  121.  
  122.                 // iterate through screens
  123.                 for (Iterator i = screenNames.iterator(); i.hasNext();) {
  124.  
  125.                     // get next screen name
  126.                     String screenName = (String)i.next();
  127.  
  128.                     // write menu
  129.                     writer.write("          <menuitem key=\"" + screenName + "\" url=\"" + screenName + ".do\"/>"  + "\r\n");
  130.                 }
  131.             }
  132.             else if (line.indexOf("Generated Screens End") >= 0) {
  133.  
  134.                 // reset flag
  135.                 generatedMenu = false;
  136.  
  137.                 // write place holder
  138.                 writer.write(line + "\r\n");
  139.             }
  140.             else if (generatedMenu) {
  141.                 // ignore existing generated screens
  142.             }
  143.             else {
  144.                 writer.write(line + "\r\n");
  145.             }
  146.             writer.flush();
  147.         }
  148.  
  149.         // close resources
  150.         reader.close();
  151.         writer.close();
  152.  
  153.         // switch files
  154.         File fromMenu = new File(menuFile + ".temp");
  155.         File toMenu = new File(menuFile);
  156.         copyFile(fromMenu, toMenu);
  157.  
  158.         // delete temp file
  159.         fromMenu.delete();
  160.     }
  161.  
  162.     private static void createGlobalForwards(
  163.             String forwardsFile,
  164.             Vector screenNames)
  165.     throws IOException {
  166.  
  167.         boolean generatedForward = false;
  168.  
  169.         // set up file reader and writer
  170.         BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(forwardsFile)));
  171.         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(forwardsFile + ".temp")));
  172.  
  173.         // iterate through menu file
  174.         String line = null;
  175.         while((line = reader.readLine()) != null) {
  176.  
  177.             // find place holder
  178.             if (line.indexOf("Generated Forwards Start") >= 0) {
  179.  
  180.                 // set flag
  181.                 generatedForward = true;
  182.  
  183.                 // write place holder
  184.                 writer.write(line + "\r\n");
  185.  
  186.                 // iterate through screens
  187.                 for (Iterator i = screenNames.iterator(); i.hasNext();) {
  188.  
  189.                     // get next screen name
  190.                     String screenName = (String)i.next();
  191.  
  192.                     // write forward
  193.                     writer.write("          <forward name=\"" + screenName + "\" path=\"/" + screenName + ".do\"/>"  + "\r\n");
  194.                 }
  195.             }
  196.             else if (line.indexOf("Generated Forwards End") >= 0) {
  197.  
  198.                 // reset flag
  199.                 generatedForward = false;
  200.  
  201.                 // write place holder
  202.                 writer.write(line + "\r\n");
  203.             }
  204.             else if (generatedForward) {
  205.                 // ignore existing generated forwards
  206.             }
  207.             else {
  208.                 writer.write(line + "\r\n");
  209.             }
  210.             writer.flush();
  211.         }
  212.  
  213.         // close resources
  214.         reader.close();
  215.         writer.close();
  216.  
  217.         // switch files
  218.         File fromMenu = new File(forwardsFile + ".temp");
  219.         File toMenu = new File(forwardsFile);
  220.         copyFile(fromMenu, toMenu);
  221.  
  222.         // delete temp file
  223.         fromMenu.delete();
  224.     }
  225.  
  226.     private static void copyFile(File fromFile, File toFile)
  227.     throws IOException {
  228.         FileInputStream in  = new FileInputStream(fromFile);
  229.         FileOutputStream out = new FileOutputStream(toFile);
  230.         byte[] buf = new byte[1024];
  231.         int i = 0;
  232.         while((i=in.read(buf))!=-1)
  233.             out.write(buf, 0, i);
  234.         in.close();
  235.         out.close();
  236.     }
  237. }
Aug 30 '07 #24
dmjpro
2,476 Top Contributor
I asked you are getting the same error again?

Kind regards,
Dmjpro.
Aug 30 '07 #25
Jenitha S
11 New Member
I asked you are getting the same error again?

Kind regards,
Dmjpro.
No it doesn't throw error now.But none of the menu items doesn't get dispalyed.
Aug 30 '07 #26
dmjpro
2,476 Top Contributor
No it doesn't throw error now.But none of the menu items doesn't get dispalyed.
But you should have told it before!
Then I would look at you Java Code rather than suffering from XML Parsing Error.

Kind Regards,
Dmjpro.
Aug 30 '07 #27

Sign in to post your reply or Sign up for a free account.

Similar topics

8
by: Gregory Piñero | last post by:
Hi guys, I'm trying to run this statement: os.system(r'"C:\Program Files\Mozilla Firefox\firefox.exe"' + ' "www.blendedtechnologies.com"') The goal is to have firefox open to that website....
3
by: The Bicycling Guitarist | last post by:
http://www.TheBicyclingGuitarist.net/css/index.css I have red nav buttons that turn blue when hovered over and turn purple after being visited. The red and blue work in FireFox, but not the visited...
6
by: Mark Olbert | last post by:
The doPostBack javascript functioning is not submitting the page when called by linkbuttons (or an autopostback checkbox, for that matter). I'm aware of a problem with Netscape browsers and the...
7
by: Coder | last post by:
Hi I have the following code in java script, it is not giving proper output in FIREFOX but running fine in IE... can anybody help me out to make this run in FIREFOX . <script...
1
by: ajaysoniji | last post by:
Hi, I am using this code to read the option values from a select option. I am getting the reference of that select option in arg1. Its working fine with mozilla firefox but not with Internet...
9
by: javakid | last post by:
Hi Following form validatioin code is working fine on IE but not working on Mozilla Firefox V2. Can any body suggest? Regards <script ="JAVASCRIPT" type="text/javascript">...
5
by: CoolForU | last post by:
this is my code and i call this code from code behinde file on page load like this useragree.Attributes.Add("onclick", "CheckSelection();") this is working fine with IE but not working with...
3
by: rajasree | last post by:
Hi all, am doing a project in PHP. my javascript code is working properly in ie. But its not working in firefox. Please help me my code is as follows; <script language="javascript"...
1
by: Sura | last post by:
Hi I have a flash interactive window which has html links and this appears on an html page. This window can be moved with the mouse on the html page. The html page has an iFrame too. When the...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
1
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
1
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
0
muto222
php
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.