Hi!
My platform is windows xp 32 bit, and right now I'm using Tomcat 7.0.2

I found a strange bug, using dom objects in JSP. Since Tomcat 6 and higher JSP page compiler throws Exception: The method getElementsByTagNameNS(String, String) is undefined for the type Element. How can it be? Method getElementsByTagNameNS must be define and it is define in Xerces Parser (last version), for example. I can use method getElementsByTagName, instead, but problem stay... plenty of code need to rewrite... can you help?

Log is in attachment. Source code of test JPS-page also attached.


________
Ryazantsev Anton



user id: [antonio3]
session id: [FD8291B6246A76C44C70B623825C329D]
time: 2010.08.24 11:46:24

Exception cause URI:
/brok/test.jsp

Root cause:
n/a

Cause:
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 32 in the jsp file: /test.jsp
The method getElementsByTagNameNS(String, String) is undefined for the type 
Element
29:     catch (Exception e) {
30:         e.printStackTrace();
31:     }
32:     NodeList nl = Message.getDocumentElement().getElementsByTagNameNS("*", 
"qwerty");
33: %>
34:   </body>
35: </html>


Stacktrace:
        at 
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
        at 
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
        at 
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:443)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
        at 
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:316)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at filters.AccessDenied.doFilter(AccessDenied.java:45)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at 
filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:170)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:242)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:163)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:556)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:401)
        at 
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:281)
        at 
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
        at 
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1568)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)

            
<%@ page import="org.w3c.dom.Document" %>
<%@ page import="javax.xml.parsers.DocumentBuilderFactory" %>
<%@ page import="javax.xml.parsers.DocumentBuilder" %>
<%@ page import="org.xml.sax.InputSource" %>
<%@ page import="java.io.StringReader" %>
<%@ page import="org.w3c.dom.NodeList" %>
<%--
  Created by IntelliJ IDEA.
  User: aryazantsev
  Date: 24.08.2010
  Time: 11:32:31
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head><title>Simple jsp page</title></head>
  <body>
<%
    Document Message = null;
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance ();
    dbf.setNamespaceAware ( true );
    dbf.setValidating ( false );
    try
    {
        DocumentBuilder db = dbf.newDocumentBuilder ();
        InputSource is= new InputSource(new StringReader("<a></a>"));
        Message=db.parse(is);
        Message.getDocumentElement().normalize();
    }
    catch (Exception e) {
        e.printStackTrace();
    }
    NodeList nl = Message.getDocumentElement().getElementsByTagNameNS("*", 
"qwerty");
%>
  </body>
</html>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to