XML Parse in JSP

Hi! i have a little problem,
* i have a sync BPEL process.
* i make a database query using a PartnerLink, example a simple table with id and description.
* my wsdl file, i change the type of the result variable and looks like this:
<element name="ROWS">
<complexType>
<sequence>
<element name="ROW">
<complexType>
<sequence>
<element name="ID" type="int"/>
<element name="DESCRIPTION" type="string"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
* the return its ok, i try from the BPEL console and it returns a XML, the question is:
How can i parse this result in a JSP file? i have a .getPayload("payload") method trying to change the result to string but it doesnt work for me. The query return several rows and i dont know how to make a recursive loop to obtain each row, if i return the result as a string (the xml transformed in string) and i put in a string return variable of my wsdl can i parse it in a easier way?
thanks for the answers and advices!

NormalizedMessage - result from BPEL process in Java has DOM objects for each message part. In your case message part is "payload". Once you get "payload" you have DOM Element. In Element you have to traverse in order to get your data. It might be not the best approach how to harvest your data. So instead of using DOM objects create XML facade classes for accessing your XSD definition. Use schemac tool (part of BPEL) for generating XML Facade classes for your message types and then you can easily convert DOM Element into simple javabeans.
hth
Peter

Similar Messages

  • How to read an attribute of an xml tag in jsp.

    hi guys,
    This is murali krishna. i have a small problem,
    i have one xml file (books.xml)
    <?xml version="1.0" encoding="iso-8859-1"?>
    <library>
    <book id="1">
    <name>Head First Java, 2nd Edition</name>
    <author>Kathy Sierra and Bert Bates</author>
    <publication-date>09-Feb-2005</publication-date>
    </book>
    <book id="2">
    <name>Effective Java</name>
    <author>Joshua Bloch</author>
    <publication-date>28-May-2008</publication-date>
    </book>
    <book id="3">
    <name>Java How to Program, 7th Edition</name>
    <author>Harvey M. Deitel and Paul J. Deitel</author>
    <publication-date>6-Jan-2007</publication-date>
    </book>
    </library>
    I tried to read this xml file in jsp as shown below
    <%@ page language="java" %>
    <%@ page import="org.w3c.dom.*" %>
    <%@ page import="javax.xml.parsers.DocumentBuilder" %>
    <%@ page import="javax.xml.parsers.DocumentBuilderFactory" %>
    <%
    DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
    DocumentBuilder db =dbf.newDocumentBuilder();
    Document doc=db.parse("c:\\books.xml");
    NodeList nl = doc.getElementsByTagName("book");
    %>
    <html>
    <head>
    <title>How to read XML file in JAVA</title>
    </head>
    <body>
    <%
    for(int i=0;i<nl.getLength();i++)
    NodeList nameNlc= doc.getElementsByTagName("name");
    Element nameElements=(Element)nameNlc.item(i);
    String nameTagValue=nameElements.getChildNodes().item(0).getNodeValue();
    NodeList authorNlc= doc.getElementsByTagName("author");
    Element authorElements=(Element)authorNlc.item(i);
    String authorTagValue=authorElements.getChildNodes().item(0).getNodeValue();
    NodeList dateNlc= doc.getElementsByTagName("publication-date");
    Element dateElements=(Element)dateNlc.item(i);
    String dateTagValue=dateElements.getChildNodes().item(0).getNodeValue();
    out.println("name :"+nameTagValue+"<br>");
    out.println("author :"+authorTagValue+"<br>");
    out.println("publication-date :"+dateTagValue+"<br><br>");
    %>
    </body>
    </html>
    so, my problem is I was unable to read the attribute of the tag book , that is "id".
    can any one tell me how to read this "id" attribute.
    Murali Krishna
    [email protected]

    hi,
    U r retriving the elements by tag name.So it just chks the tag name ie.<book> & gives u array of elements.But u need retrive d attribute of <book> tag itself.
    =Solution =====
    Add one more statement ----> var[]= doc.getElementsByName("book");
    Now u hav book elements as an array & can retrive id in for loop
    for(var; var.length;var++)
    doc.element[var].id.value

  • XML parsing error: web-jsptaglibrary_1_1.dtd not found

    I'm getting the following Exception while Tomcat is parsing my welcome jsp page:
    exception
    org.apache.jasper.JasperException: XML parsing error on file /WEB-INF/struts-template.tld: Internal Error: File /javax/servlet/jsp/resources/web-jsptaglibrary_1_1.dtd not found
         at org.apache.jasper.parser.ParserUtils.parseXMLDocument(ParserUtils.java:227)
         at org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:283)
         at org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:219)
         at org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:174)
         at org.apache.jasper.compiler.JspParseEventListener.processTaglibDirective(JspParseEventListener.java:1170)
         at org.apache.jasper.compiler.JspParseEventListener.handleDirective(JspParseEventListener.java:765)
         at org.apache.jasper.compiler.DelegatingListener.handleDirective(DelegatingListener.java:125)
         at org.apache.jasper.compiler.Parser$Directive.accept(Parser.java:255)
         at org.apache.jasper.compiler.Parser.parse(Parser.java:1145)
         at org.apache.jasper.compiler.Parser.parse(Parser.java:1103)
         at org.apache.jasper.compiler.Parser.parse(Parser.java:1099)
         at org.apache.jasper.compiler.ParserController.parse(ParserController.java:214)
         at org.apache.jasper.compiler.Compiler.compile(Compiler.java:210)
         at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:548)
         at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:176)
         at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:188)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)
         at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
         at java.security.AccessController.doPrivileged(Native Method)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
         at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:458)
         at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:551)
         at java.lang.Thread.run(Thread.java:534)
    This is the reference to the dtd its not finding from the tld
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    Do you think this is a bug with the parser itself or an incompatablilty between it and the tag library?
    Or am I missing something?
    Thanks for any help..... Andy

    Store the web-jsptaglibrary_1_1.dtd to a directory and specify the file url.
    <!DOCTYPE taglib  SYSTEM "file://C:/dtds/web-jsptaglibrary_1_1.dtd">

  • Swapping XML Parser and XSLT to Xalan 2.7.0 - Not Working (OC4J 10.1.3)

    Hi-
    I'm trying to use the latest Xercies/Xalan classes in OC4J 10.1.3 as described in the How-To swap XML Parsers document:
    http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/how-to-swapxmlparser/doc/readme.html
    What I can see happening is that the oracle.xml shared library is successfully 'turned off', but the xalan libraries are not added. Instead, the default xml classes that are distributed with the JDK become visible. For instance, using a slightly modified version of the index.jsp page from the how-to, I get this result:
    ------ Output from JSP page ----------------
    TransformerFactory Instance: org.apache.xalan.processor.TransformerFactoryImpl
    Transformer Instance: org.apache.xalan.transformer.TransformerIdentityImpl
    Transformer Version: Xalan Java 2.4.1 (!!)
    What I expect is for that last line to say version 2.7.0, which is the version of the xalan.jar included in my shared library (code to add that line to the how-to shown below).
    I suspect what is happening is that the class loader is simply not letting a shared library override a system library - to do that you probably need to place the jar files in system endorsed directory.
    Has anyone gotten this how-to to work - actually replacing the XML parser/transform classes with the latest Xalan classes? Are you sure it is seeing the current version you placed in the shared library?
    Thanks,
    Eric Everman
    ---- My modified getXSLTDetails() method in the index.jsp page of the how-to -------
    <!-- Additional Import -->
    <%@ page import="org.apache.xalan.Version" %>
    public static String getXSLTDetails()
    Transformer transformer=null;
    TransformerFactory transformerfactory = TransformerFactory.newInstance();
         Version ver = null;
         String br = "<" + "br" + ">"; //otherwise the otn forum chocks on the break.
    try
    transformer = transformerfactory.newTransformer();
              ver = (Version) transformer.getClass().forName("org.apache.xalan.Version").newInstance();
              String ret_val =
                   "TransformerFactory Instance: "+transformerfactory.getClass().getName() + br +
                   "Transformer Instance: "+transformer.getClass().getName() + br;
              if (ver != null) {
                   ret_val = ret_val + "Transformer Version: " + ver.getVersion() + br;
              } else {
                   ret_val = ret_val + "Transformer Version not Available" + br;
              return ret_val;
    catch (Exception e)
    e.printStackTrace();
    return e.getMessage();
    }--------------------------------------------------------------------

    Steve - Thanks for responding on this.
    The Xalan SQL extension is built into Xalan. The most painless way to try it out is to run it via JEdit: www.jedit.org
    JEdit a OS Java application with a fairly painless install process (I'm assuming you already have a current JRE installed). Once its installed, you'll need to install the XSLT plugin - in JEdit goto Plugins | Plugin Manager | Install and pick the XSLT plugin. You'll need the Oracle JDBC classes on your classpath - this can be done by copying the oracle_jdbc4.jar into the [JEdit install directory]/jars directory.
    Restart to load that jar and you should be all set.
    I included a sample XSLT page at the bottom of this post that is somewhat of a template transform for the SQL extension - its more complicated then it needs to be, but it does some nice things with the results of the query. Save it as a file and make the appropriate changes to the 'datasource' parameter near the top of the file.
    Then in JEdit, open the file and make sure the XSLT plugin is visible (Plugins | XSLT | XSLT Processor Toggle - or alternately dock it in the window via global prefs). In the XSLT plugin: Allow the current buffer to be used as the source, Add that same file as a stylesheet via the '+' button, and pick a result file at the bottom. Then click the 'Transform XML' button.
    Troubleshooting: I seem to remember having some classpath errors when I tried this on windows, but others have had it work w/o issues. I do remeber that the XSLT plugin had a popup window that gave a pretty good explaintion of the problem, if it occurs. Also, for some reason the XSLT plugin will not create a new file for the output, so its often best to create a file first, then choose it as the output. Of course, you can always run a transformation from the command line or w/in an applicatoin. Full docs on the Xalan SQL extension can be found at: http://xml.apache.org/xalan-j/extensionslib.html#sql
    Here is my sample XSLT transform using the SQL extension:
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
              xmlns:sql="http://xml.apache.org/xalan/sql"
              xmlns:str="http://exslt.org/strings"
              xmlns:xalan="http://xml.apache.org/xalan"
              extension-element-prefixes="sql str xalan">
         <xsl:output indent="yes"/>
         <xsl:param name="driver">oracle.jdbc.OracleDriver</xsl:param>
         <xsl:param name="datasource">jdbc:oracle:thin:jqpublic/jqpublic@server_name:1521:dbname</xsl:param>
         <xsl:param name="jndiDatasource"><!-- jndi source for production use w/in enterprise environment --></xsl:param>
         <xsl:param name="debug">true</xsl:param>
         <xsl:variable name="connection" select="sql:new()"/>
         <xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
         <xsl:variable name="lowercase" select="'abcdefghijklmnopqrstuvwxyz'"/>
         <!--
              The query:  You could pass parameters in to this query to build a where clause, but here is a simple example.
              Also, its nice to wrap the query with a max row number to prevent huge results.
         -->
         <xsl:param name="query">
         select * from (
      SELECT
              'One' FIELD_1,
              'Two' FIELD_2
         FROM DUAL
         ) where rownum < 100
         </xsl:param>
         <!-- Essentially, create a XConnection object -->
         <xsl:variable name="connection" select="sql:new()"/>
         <xsl:template match="/">
        <xsl:choose><!-- Connect using JNDI -->
          <xsl:when test="$jndiDatasource != ''">
            <xsl:if test="not(sql:connect($connection, $jndiDatasource))">
              <xsl:message>Failed to connect to db via jndi connection</xsl:message>
              <xsl:comment>Failed to connect to db via jndi connection</xsl:comment>
              <xsl:if test="$debug = 'true'">
                <xsl:copy-of select="sql:getError($connection)/ext-error"/>
              </xsl:if>
            </xsl:if>
          </xsl:when>
          <xsl:otherwise><!-- Connect using connection string -->
            <xsl:if test="not(sql:connect($connection, $driver, $datasource))">
              <xsl:message>Failed to connect to db via driver/url connection</xsl:message>
              <xsl:comment>Failed to connect to db via driver/url connection</xsl:comment>
              <xsl:if test="$debug = 'true'">
                <xsl:copy-of select="sql:getError($connection)/ext-error"/>
              </xsl:if>
            </xsl:if>
          </xsl:otherwise>
        </xsl:choose>
              <!--
              The results of the query.  The rowset is brought back in 'streaming' mode,
              so its not possible to ask it for the number of rows, or to check for zero
              rows.  There is a switch to disable streaming mode, but this requires all
              rows to be brought into memory.
              -->
              <xsl:variable name="table" select="sql:query($connection, $query)"/>
              <xsl:if test="not($table)">
                   <xsl:message>Error in Query</xsl:message>
                   <xsl:copy-of select="sql:getError($connection)/ext-error"/>
              </xsl:if>
              <page>
                   <!-- Your xalan environment -->
                   <xsl:copy-of select="xalan:checkEnvironment()"/>
                   <!-- Build a bunch of metadata about the rows -->
                   <meta>
                        <cols>
                             <xsl:apply-templates select="$table/sql/metadata/column-header"/>
                        </cols>
                   </meta>
                   <rowset>
                        <!--
                             With streaming results, you must use the apply-temmplates contruct,
                             not for-each, since for-each seems to attempt to count the rows, which
                             returns zero.
                        -->
                        <xsl:apply-templates select="$table/sql/row-set"/>
                   </rowset>
              </page>
              <xsl:value-of select="sql:close($connection)"/><!-- Always close -->
         </xsl:template>
         <xsl:template match="row">
              <row>
                   <xsl:apply-templates select="col"/>
              </row>
         </xsl:template>
         <xsl:template match="column-header">
              <col>
                   <xsl:attribute name="type">
                        <xsl:value-of select="@column-typename"/>
                   </xsl:attribute>
                   <xsl:attribute name="display-name">
                        <xsl:call-template name="create-display-name"/>
                   </xsl:attribute>
                   <xsl:value-of select="@column-name"/>
              </col>
         </xsl:template>
         <!-- Convert column names to proper caps: MY_FIELD becomes My Field -->
         <xsl:template name="create-display-name">
              <xsl:variable name="col-name">
                   <xsl:for-each select="str:tokenize(@column-name, '_')">
                        <xsl:value-of
                             select="concat(translate(substring(., 1, 1), $lowercase, $uppercase), translate(substring(.,2), $uppercase, $lowercase), ' ')"/>
                   </xsl:for-each>
              </xsl:variable>
              <xsl:value-of select="substring($col-name, 1, string-length($col-name) - 1)"/>
         </xsl:template>
         <!-- Creates data columns named 'col' with a column-name attribute -->
         <xsl:template match="col">
              <col>
                   <xsl:attribute name="column-name"><xsl:value-of select="@column-name"/></xsl:attribute>
                   <xsl:value-of select="."/>
              </col>
         </xsl:template>
    </xsl:stylesheet>

  • Oracle.xml.parser.v2.SAXParser error

    I'm reposting this error that I recently received one more time before removing the XML transforms from my Java projects and doing them in .NET.
    Code that was working fine suddenly getting a transform error using JDeveloper.
    Get the following:
    javax.servlet.ServletException: javax.xml.transform.TransformerConfigurationException: XML-22000: (Fatal Error) Error while parsing XSL file (weblogic.xml.jaxp.RegistryXMLReader cannot be cast to oracle.xml.parser.v2.SAXParser).
         at weblogic.servlet.jsp.PageContextImpl.handlePageException(PageContextImpl.java:417)
    Seems that
    <!--
    <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <h1>Project Weekly Hours Worked</h1>
    <table>
    <c:import url="HoursWorked.xml" var="xmlHoursWorked" charEncoding="windows-1252"/>
    <c:import url="./HoursWorked3.xsl" var="xslt" charEncoding="windows-1252"/>
    <x:transform xml="${xmlHoursWorked}" xslt="${xslt}" />
    </table>
    -->
    will not transform XML to HTML via XSL in JSP anymore.
    If I run the XSL i get the HTML results I expected in an HTML test page.
    So I know the XML and XSL is sound.
    XSL and DOM parsing in Java/Oracle was a major pain in the ass in the first place and now this.
    Well I've spent hours going through Oralce/Java documentation on XML, DOM and XSL transforms.
    All that time spent and still so unstable. I don't think I was ever able to really get what I wanted
    which was to transform my XML document to HTML, update via JSP and have the XML document
    be updated and ready to view in a summary page. The XML document changes were never really
    available unless I closed the app and restarted. So all in all a failure of capabilities compared to my
    use of XML in .NET.
    So........
    Me thinks it will be a good idea to take out the transforms and have my JSP use a script to invoke a
    method in a class that extracts it from a message. Just have PL/SQL interface with XML and do the
    transform or serialize thing there.
    I don't want to give up on XML but I'm tired of trying to jam a square peg into a round hole
    with Java and JDeveloper.
    Brian

    We don't support file references ("cv1_0.dtd"). Only url type references
    are supported, of the form:
    @ <!DOCTYPE cv1 SYSTEM "http://www.oracle.com/public/cv1_0.dtd>
    Note that the url should be accessible to the world without the need to authenticate.
    you could put your dtd in the "public" area in your iFS system.
    Thanks,
    Sirisha
    null

  • XMl parser version problem for running struts project in jdeveloper 10.1.3

    Dear All.
    I am trying to run a struts (v 1.2.9) based project in Jdeveloper 10.1.3.1.0.The struts version in Jdeveloper is 1.1.
    when i am trying to run the index.jsp i get an error:
    org.xml.sax.SAXNotRecognizedException: http://apache.org/xml/features/validation/dynamic
    I think the XML parser version is a problem.Jdeveloper has OracleXMLParser v2 and i think the XML Parser apis used in building the project is different.I have placedcustiom xml parser apis and the xerces.jar in the jdevbin/jdev/lib folder and included these jar in the bootclasspath as follows:
    AddVMOption -Xbootclasspath/p:../lib/xml-apis.jar
    AddVMOption -Xbootclasspath/p:../lib/xerces-2.6.2.jar
    But even then the Exception persists.Is the syntax for Xbootclasspath wrong or i need to place these custom api's in some other location of jdev.
    I am not being able to figure out the XMl parser problem.
    Any help wud be great.
    Is it that i cant run the project in jdeveloper.Just to mention the application is deployed in OC4J on the server and runs fine..But its only that i kant run it locally through jdeveloper

    I am also facing the same issue on my laptop. I searched for forum but no luck.
    appreciate if anybody can throw some light on this.

  • Problem in IAS Server with generation of PDF with FOP and XML parsing

    Dear co.forumers :
    We are developing an application that generates a pdf document with FOP Apache utilities, and this PDf is stored in a folder of the server. Firts of all, a DDBB data is retrieved using java ( jdbc) middleware classes ( servlets ), and with these data, the pdf is generated using FOP. In these process, he data retrieved from the DDBB is converted in a XML file , and the with the XSL FOP utility, the pdf is generated.
    In the other hand, we have another application that consults data from a java beans, using a JSP, generates a XML with the data of the beans, and with this XML, and with a XSL file generates and html , with the data and fixed text.
    Both applications have been deployed as a separated WebApp in the IAS. Both use Xalan as XML parser amb Xerces is used aswell.
    So, the problem is , after generating a pdf with the firts application, every html generated via JSP-XML-XSL transformation in the second application is shown completelly bad formated. All fixed text are wrongly composed, and the text that should appear in textFields and ComboBoxes is also bad formated. The XML with the data is well generated, so the problem is in the parsing of these XML and the conversion in html through XSL. We have to re-initiate the server and then everything goes well again. If no pdf is launched, no problem occurs with the other application.
    How an a WEB APP pplication can affect to another, installed both in different folders of the IAS ? We tried to change Xalan version and FOP version, but no result.
    Is this a Poltergeist ?? and X file , maybe ?
    Has anyone had the same problem ?
    Pleae, any help will be very wellcomed.

    A PDF document may be generated in the JDeveloper OC4J server.
    http://www.oracle.com/technology/pub/notes/technote_vohra_fop.html

  • XML Parser returning XML content

    This probably seems like overkill..
    Im building a JSP that reads in XML and parses it. I then need to filter for specific values in the XML, and return a chunk of the XML to the output stream.
    So far I've got..
          //set-up in and content-type
            FileInputStream file = new FileInputStream (getServletContext().getRealPath("/games_arcade/xml/game_marketing_content.xml"));
            //response.setContentType("text/xml");
            //parse the request
            Document doc = null ;
            try {
                   DocumentBuilderFactory docBuilderFact = DocumentBuilderFactory.newInstance();
                   DocumentBuilder docBuilder = docBuilderFact.newDocumentBuilder();
                   doc = docBuilder.parse(file);
                   out.println("Go on ya good thing!!!");
            } catch (ParserConfigurationException pcEx) {
                throw new ServletException("jaxp not configured!", pcEx);
            //get needed data from the xml
            NodeList games = doc.getElementsByTagName("game");
              out.println(output.toString());
              Now Im lost. All the requisites are there, imports etc, Im just stuck with filtering the NodeList.
    Or am I completely wrong with this approach?
    Any help greatly appreciated.
    thanks!
    Stephen

    Hi,
    thanks for the replyand suggestions. Have a bit of an issue with this method, this method (due to technical limitations) is completely JSP, using a standard iPlanet 6.1 classpath. I cant deploy WAR's (and cant use taglibs). Xpath/XSL would be ideal, but how do I write the output as XML?
    So are you suggesting
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="html"/>
        <xsl:template match="/">
            <xsl:for-each select="games/game">
              <xsl:if test="@id = $GAMEID">
                   ... output the xml node using value-of's etc...
              </xsl:if>
            </xsl:for-each>
          </xsl:template>
        </xsl:stylesheet>Cheers Dr Clap!
    Stephen

  • XML Parser on UTF8

    The project I am working with is involves with UTF8 chars (ie. japanese,chinese) stored in XML file. I tried to test and use the sample XML Parser on Weblogic 7 by putting Japanese character on order.xml and ran the OrderParser.jsp then I got weird characters instead of the Japanese word.
    I saved the xml file on utf8 coding and changed the OrderParser.jsp encoding tag=utf8 too.
    If anybody can help, I appreciated much.
    Nick

    Nick,
    What progam and on what plateform are you making the xml file ?
    What is the plateform for the Weblogic ?
    If Unix, have you checked the LOCALE values ?
    Thanks for the reply,
    Nohmenn
    "Nick" <[email protected]> a écrit dans le message de news:
    [email protected]..
    The project I am working with is involves with UTF8 chars (ie.japanese,chinese) stored in XML file. I tried to test and use the sample XML
    Parser on Weblogic 7 by putting Japanese character on order.xml and ran the
    OrderParser.jsp then I got weird characters instead of the Japanese word.
    >
    I saved the xml file on utf8 coding and changed the OrderParser.jspencoding tag=utf8 too.
    >
    If anybody can help, I appreciated much.
    Nick

  • XML-Parser-Problem ? DataBindings.cpx

    Hello,
    Ok -I just will formulate my question somewhat different: It is possible that the XML-Parser has a Problem ? Please see the stuff below.
    I just got a warning:
    Project: D:\ORAJDev101320\jdev\mywork\LoginJSF\ViewController\ViewController.jpr
    D:\ORAJDev101320\jdev\mywork\LoginJSF\ViewController\src\login\DataBindings.cpx
    Warning(11,15): <Line 11, Column 15>: XML-24521: (Fehler) Element nicht abgeschlossen: 'Application'
    for the following xml file when compiling my sampe books (chapter9) code:
    <?xml version="1.0" encoding="UTF-8" ?>
    <Application xmlns="http://xmlns.oracle.com/adfm/application"
    version="10.1.3.40.66" id="DataBindings" SeparateXMLFiles="false"
    Package="login" ClientType="Generic">
    <pageMap>
    <page path="/home.jsp" usageId="homePageDef"/>
    </pageMap>
    <pageDefinitionUsages>
    <page id="homePageDef" path="login.pageDefs.homePageDef"/>
    </pageDefinitionUsages>
    </Application>
    After trying a little bit it turned out that the message disappears when
    the :
    Application xmlns="http://xmlns.oracle.com/adfm/application"
    is rewritten to
    Application xmlns="http://xmlns.oracle.com/adfm/Application"
    (Application with a upper first A)
    I have to point out that previously I did not by hand coding in this file.
    Is this a known issue.?
    And will/could these change do cause other/addition problems somewhere ?
    Andre
    Message was edited by:
    andreml
    null

    How about adding this tag <dataControlUsages/>? My JDev doesn't complain about your content.
    just my 2 cents
    --olaf                                                                                                                                                                                                                                               

  • XML parser Exception

              Hi
              I try to deploy a servlet that serve as a MapPoint web services client. So the
              servlet receive a post with latitude and longitude then it try it to retrieve
              a Map showing the location from MapPoint through web services. I am able to deploy
              the servlet, but it throws the following exception when it receives a request.
              java.lang.RuntimeException: ; nested exception is:
                   org.xml.sax.SAXParseException: The root element is required in a well-formed
              document.
                   at com.spatialpoint.mappoint.storelocator.StoreLocator.getAddressMatches(StoreLocator.java:266)
                   at jsp_servlet.__locate._jspService(__locate.java:181)
                   at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
                   at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1058)
                   at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:401)
                   at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:306)
                   at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:5412)
                   at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:744)
                   at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3086)
                   at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2544)
                   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:153)
                   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:134)
              Any help will be very much appreciated. Thanks
              

    If you're using the XMLTYPE constructor to insert your XML into the DB you can avoid the well-formed validation declaring that the xml is well formed:
    SQL> insert into MYXMLTABLE values (
      2  XMLTYPE('
      3  <ROOT a="1" a="3"/>
      4  ',null,0,1));
    1 row created.Oracle inserts the xml in the table but, obvoiusly, you'll never be able to use it as an XML file:
    SQL> select object_value
      2  from MYXMLTABLE ;
    OBJECT_VALUE
    <ROOT a="1" a="3"/>
    SQL> select extract(object_value,'/*')
      2  from MYXMLTABLE ;
    ERROR:
    ORA-31011: XML parsing failed
    ORA-19202: Error occurred in XML processing
    LPX-00224: multiple occurrences of attribute "a" found
    Error at line 8Max
    [My Italian Oracle blog|http://oracleitalia.wordpress.com/2010/01/31/le-direttive-di-compilazione-pragma/]

  • XML parser exception: No documentation !

    Hi,
    I'm getting an exception when looking for
    an <xsl:apply-templates> tag in an XSL file
    thats loaded via the DOMParser.
    Do I need to do anything special to declare
    the XSL Namespace?
    Also, the Parser API docs don't seem to have
    this Exception listed!!!
    Does anyone know more regarding this?
    TIA,
    Vijay
    oracle.xml.parser.v2.XPathException: Namespace prefix 'xsl' used but not declared.
    at oracle.xml.parser.v2.XSLParseString.nextToken(XSLParseString.java:406)
    at oracle.xml.parser.v2.PathExpr.<init>(XSLNodeSetExpr.java:313)
    at oracle.xml.parser.v2.XSLNodeSetExpr.parse(XSLNodeSetExpr.java:147)
    at oracle.xml.parser.v2.XSLNodeSetExpr.parse(XSLNodeSetExpr.java:131)
    at oracle.xml.parser.v2.XSLNodeSetExpr.parse(XSLNodeSetExpr.java:124)
    at oracle.xml.parser.v2.UnaryExpr.parse(XSLExpr.java:357)
    at oracle.xml.parser.v2.MultiplicativeExpr.parse(XSLExpr.java:295)
    at oracle.xml.parser.v2.AdditiveExpr.parse(XSLExpr.java:243)
    at oracle.xml.parser.v2.RelExpr.parse(XSLExpr.java:210)
    at oracle.xml.parser.v2.EqualExpr.parse(XSLExpr.java:160)
    at oracle.xml.parser.v2.AndExpr.parse(XSLExpr.java:110)
    at oracle.xml.parser.v2.XSLExpr.parse(XSLExpr.java:59)
    at oracle.xml.parser.v2.FilterExpr.getPrimaryExpr(XSLNodeSetExpr.java:1444)
    at oracle.xml.parser.v2.FilterExpr.<init>(XSLNodeSetExpr.java:1128)
    at oracle.xml.parser.v2.PathExpr.<init>(XSLNodeSetExpr.java:275)
    at oracle.xml.parser.v2.XSLNodeSetExpr.parse(XSLNodeSetExpr.java:147)
    at oracle.xml.parser.v2.XSLNodeSetExpr.parse(XSLNodeSetExpr.java:131)
    at oracle.xml.parser.v2.XSLExprBase.createNodeSetExpr(XSLExprBase.java:123)
    at oracle.xml.parser.v2.XMLNode.selectNodes(XMLNode.java:763)
    at oracle.xml.parser.v2.XMLNode.selectSingleNode(XMLNode.java:861)
    at com.citicorp.gra.portlets.fxrates.FxRatesPortletContentProvider.createStylesheet(FxRatesPortletContentProvider.java:302)
    at com.citicorp.gra.portlets.fxrates.FxRatesPortletContentProvider.getStylesheet(FxRatesPortletContentProvider.java:341)
    at com.citicorp.gra.portlets.fxrates.FxRatesPortletContentProvider.getContent(FxRatesPortletContentProvider.java:125)
    at portlet.BasePortlet.doPost(BasePortlet.java:100)
    at portlet.BasePortlet.doGet(BasePortlet.java:137)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
    at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1013)
    at allaire.jrun.servlet.JRunSE.runServlet(JRunSE.java:925)
    at allaire.jrun.servlet.JRunNamedDispatcher.include(JRunNamedDispatcher.java:42)
    at allaire.taglib.ServletTag.doEndTag(ServletTag.java:84)
    at jrun__html__fxrates__tagtest2ejsp19._jspService(jrun__html__fxrates__tagtest2ejsp19.java:53)
    at allaire.jrun.jsp.HttpJSPServlet.service(HttpJSPServlet.java:40)
    at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1013)
    at allaire.jrun.servlet.JRunSE.runServlet(JRunSE.java:925)
    at allaire.jrun.servlet.JRunNamedDispatcher.forward(JRunNamedDispatcher.java:34)
    at allaire.jrun.jsp.JSPServlet.service(JSPServlet.java:175)
    at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1013)
    at allaire.jrun.servlet.JRunSE.runServlet(JRunSE.java:925)
    at allaire.jrun.servlet.JRunRequestDispatcher.forward(JRunRequestDispatcher.java:88)
    at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1131)
    at allaire.jrun.servlet.JvmContext.dispatch(JvmContext.java:330)
    at allaire.jrun.jrpp.ProxyEndpoint.run(ProxyEndpoint.java:367)
    at allaire.jrun.ThreadPool.run(ThreadPool.java:272)
    at allaire.jrun.WorkerThread.run(WorkerThread.java:75)
    null

    Hi
    below is the statement which is looking
    for the "xsl:app-templates" element under
    node1, it need an instance of NSResolver.
    XMLElement node1Child2 = (XMLElement) node1.selectSingleNode ("//xsl:apply-templates", resolver );
    // Name Space Resolver
    private class MyNSResolver implements NSResolver {
    * returns the Namespace definition int scope for a given namespace prefix
    public String resolveNamespacePrefix( String prefix ) {
    if ( prefix.equals("xsl")) {
    return "http://www.w3.org/1999/XSL/Transform";
    } else return null;
    } // private class MyNSResolver
    null

  • Oracle XML parser and IBM jdk bug

    Hello,
    From a few messages found in the XML forum it seems that IBM jvm could cause problems with oracle XML parser. ( see http://technet.oracle.com:89/ubb/Forum11/HTML/003823.html )
    I am using IBM jvm (jdk 1.3) on a linux box, and problems are starting to arise:
    I have
    - 1 BC4J based jsp app which works fine.
    - 2 XML parsing BC4J apps which cause strange errors (like parsing 40 documents fine and failing on the 41st for no apparent reason)
    Hopefully, Steven Muench provided precious advice on this (basically, disabling the JIT), however some issues are still open:
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>You should file a bug with IBM to get this fixed, using your stylesheet as a testcase. Lots of people have hit this problem.<HR></BLOCKQUOTE>
    Has anyone (from oracle or else) done this yet? I have gone (quickly) through IBM website but I didn't find any bug report utility or the like...
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Disable your JIT compiler (or switch JVM's) and you won't have the error.<HR></BLOCKQUOTE>
    Turning off the JIT indeed made the errors vanish, thanks a lot for the tip!
    I have a few more questions though :
    * As the BC4J framework uses the xml parser, It is fairly possible that the ibm jvm bug will affect it...
    I haven't had any problems (yet?) with the BC4J part of my applications, but I'm a bit concerned about having random bugs lurking around (I have more than enough of my own :) )
    Has anyone stumbled upon IBM JVM vs oracle parser issues in BC4J? (oracle.xml.parser.v2.XXXXXX exceptions...)
    * If BC4J is indeed affected, what's the solution?
    - Disable the JIT? (And forget about performance?... hmmm... no)
    - Switch parsers? (oracle parser is too tightly integrated in the BC4J Framework isn't it?.. hmm... not possible either)
    - Wait for a patch from IBM (and use another one in the meantime) / switch JVM :
    In either case, I'd really like to know what is the JVM that oracle people use / would advise.
    Thanks for your help
    null

    For those interested,
    last week i reported this bug in the ibm jvm news forum.
    They said that the problem had been investigated and would be fixed in their next service release.
    FYI: the current release (SR7, labeled "build cx130-20010329) still has various problems wih oracle XML parser.
    Remi
    null

  • Deployment problem : oracle.xml.parser.v2.XMLParseException

    Hi to all.
    I have a strange problem deplying an application. When the first jsp is loaded the follwing excteption is raised :
    OracleJSP: oracle.jsp.parse.JspParseException: Line # 1, <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    Error: oracle.xml.parser.v2.XMLParseException ( /notifiche.jsp ):
    line #:10 column #:10 : Element taglib not complete, expected elements '[validator, listener, tag]'.
    With the embedded OC4J server all works fine. This is not the first application i deploy but this is the first time i have a problem. I'm doing somthings wrong in the deployment descriptor ?
    TIA
    sergio sette

    After restarting the JDeveloper its working.

  • XML parser Problem in Oracle 9iAS

    Dear All,
    I am trying to parse a xml file by using a SAX Parser.
    I am getting error "oracle.xml.parser.v2.XMLParseException: Invalid InputSource.'. I have already included 'xerces.jar' in the classpath.
    But it is always taking oracle xml parser.
    How to change the default XML parser in Oracle 9ias.
    This is my report.jsp File
    &lt;%@ page import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*,javax.jms.*,iims.util.*,javax.xml.parsers.*,org.xml.sax.*,org.xml.sax.helpers.*, org.w3c.dom.*"%&gt;
    &lt;%
    generateTree();
    %&gt;
    &lt;%!
         //This method is to be called during startup. It will generate the template and rule nodes.
         public static void generateTree() throws Exception
              //Proceed with this method if the template and rule trees are not built already.
              //if (nodeTemplate != null && nodeRule != null) return;
              // Validate
              Node nodeRule = parseXml("d:\\ora9ias\\j2ee\\home\\Reports\\IIMSReportsTemplate1.xml");
         }//generateTree
    %&gt;
    &lt;%!
         //parse the input file and return a node.
         private static Node parseXml(String fileName) throws Exception
              //Parse the input file
              Document objDocument = null;
              DocumentBuilder objDocumentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
              objDocument = objDocumentBuilder.parse(fileName);
              Node nodeRet = objDocument;
              return nodeRet;
         }//parseXml
    %&gt;
    Report template:
    &lt;ROOT&gt;
         &lt;HEADINGS&gt;
              &lt;HEADING1&gt;H1&lt;/HEADING1&gt;
              &lt;HEADING2&gt;H2&lt;/HEADING2&gt;
              &lt;HEADING3&gt;H3&lt;/HEADING3&gt;
              &lt;HEADING4&gt;H4&lt;/HEADING4&gt;
              &lt;HEADING5&gt;H5&lt;/HEADING5&gt;
              &lt;HEADING6&gt;H6&lt;/HEADING6&gt;
         &lt;/HEADINGS&gt;
         &lt;ROWSETS&gt;
              &lt;ROWSET&gt;
                   &lt;COLHDRS&gt;
                   &lt;/COLHDRS&gt;
                   &lt;ROWS&gt;
                   &lt;/ROWS&gt;
              &lt;/ROWSET&gt;
         &lt;/ROWSETS&gt;
         &lt;Footer&gt;
              &lt;PageNo&gt;Generate&lt;/PageNo&gt;
              &lt;Date&gt;SystemDate&lt;/Date&gt;
         &lt;/Footer&gt;
    &lt;/ROOT&gt;
    Stack Trace:
    strRuleFileD:\ora9ias\j2ee\home\Reports\IIMSReportsRules.xml
    oracle.xml.parser.v2.XMLParseException: Invalid InputSource.
    at oracle.xml.parser.v2.XMLError.flushErrors(XMLError.java:145)
    at oracle.xml.parser.v2.XMLReader.pushXMLReader(XMLReader.java:208)
    at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:140)
    at oracle.xml.jaxp.JXDocumentBuilder.parse(JXDocumentBuilder.java:96)
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:165)
    at iims.REPORTS.IIMSGenerateReport.parseXml(IIMSGenerateReport.java:115)
    at iims.REPORTS.IIMSGenerateReport.generateTree(IIMSGenerateReport.java:
    100)
    at iims.REPORTS.IIMSGenerateReport.buildXML(IIMSGenerateReport.java:147)
    at PCREPORT_PROCESS.processBody(PCREPORT_PROCESS.java:3248)
    at PCREPORT_PROCESS.doPost(PCREPORT_PROCESS.java:100)
    at PCREPORT_PROCESS.doGet(PCREPORT_PROCESS.java:92)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:244)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
    at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterC
    hain.java:59)
    at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletReque
    stDispatcher.java:523)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(Ser
    vletRequestDispatcher.java:269)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpReques
    tHandler.java:735)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java
    :151)
    at com.evermind.util.ThreadPoolThread.run(ThreadPoolThread.java:64)
    Please advise.
    Thanks
    Siva Kishor Rao U

    Adding Xerces XML parser is not enough to make it work. Since some version of JDK (I think 1.4.X) XML parser is included and for older version it can be setup like a runtime option. And this is probably how ORACLE is using its XML parser. If you want to use different parser, you have to pass runtime option to JVM - for Xalan it looks like this:
    -Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl
    ...this way it becomes default parser factory used by javax interface functions. Look for documentation on xml.apache.org
    Myrra

Maybe you are looking for

  • Error after Installing Solaris

    Hi Admins I am getting the following problem after the installation of Solaris 10 on a sunfire v440.Can someone please help me out.I am not sure about the cause of the error output because i am still a junior solaris admin. Please help me fix this pr

  • Unable to start a new project.

    I have just installed Premier Elements 8, When I click New Project, it gets up to a loading stage called Hurdy Gurdy.dll and then comes up with a Can't load Module: Soundbytes Midisense. I click ok then it says Can't load Module: Caption. I click ok

  • IPhone: Appears in Windows but not in iTunes

    hello my iphone appears in wind.7 but not in itunes already del itune and downlo again

  • TS3474 Blank Screen, despite connecting to computer.

    I've used this ipod nano 3 times, and I've had it less than a month.  No damage.  The screen will not turn on.  It connects to my laptop and shows it to be working fine, BUT I can't use it. the screen just stays black despite all the sites suggestion

  • Adobe Camera Raw: faithful with DNG Profile Editor

    I want to share my results and some thoughts in the attempt of searching for a camera profile that provides faithfulness to the scene in every standard lighting condition. Ciao Marco