You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by nikita berdikov <ma...@yahoo.com> on 2005/12/19 23:50:18 UTC

Tomcat 5.0.28 + Oracle 9i

Hi!

I have *.jsp page with a form. It sets several
properties of a bean, that then connects to Oracle DB
and inserts data into table. When i click "Submit", i
have the following error:

HTTP Status 500 - 



type Exception report

message 

description The server encountered an internal error
() that prevented 
it from fulfilling this request.

exception 

org.apache.jasper.JasperException: Unable to compile
class for JSP
        
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:520)
        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
        
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
       
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:670)
        
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:637)
        
org.apache.jsp.registration_jsp._jspService(registration_jsp.java:75)
        
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
       
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
       
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause 

java.io.UTFDataFormatException: Invalid byte 2 of
2-byte UTF-8 
sequence.
        
org.apache.jasper.xmlparser.UTF8Reader.invalidByte(UTF8Reader.java:615)
        
org.apache.jasper.xmlparser.UTF8Reader.read(UTF8Reader.java:305)
        
org.apache.jasper.xmlparser.XercesEncodingDetector.load(XercesEncodingDetector.java:1000)
        
org.apache.jasper.xmlparser.XercesEncodingDetector.skipString(XercesEncodingDetector.java:951)
        
org.apache.jasper.xmlparser.XercesEncodingDetector.scanXMLDecl(XercesEncodingDetector.java:1209)
        
org.apache.jasper.xmlparser.XercesEncodingDetector.getEncoding(XercesEncodingDetector.java:108)
        
org.apache.jasper.xmlparser.XercesEncodingDetector.getEncodingMethod(XercesEncodingDetector.java:121)
        
org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:57)
        
org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:313)
        
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:170)
        
org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
        
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
       
org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
       
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
       
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
        
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
        
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
       
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:670)
        
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:637)
        
org.apache.jsp.registration_jsp._jspService(registration_jsp.java:75)
        
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
       
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
       
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

I tried to do:

<%@ page contentType="text/html;charset=windows-1251"
pageEncoding="windows-1251"%>
request.setCharacterEncoding("Cp1251");
response.setContentType("text/html;charset=Windows-1251");
%>


I also tried:

if( name!=null ){
	name = new
String(name.getBytes("ISO-8859-1"),"Cp1251");}
if( surname!=null ){
	surname = new
String(surname.getBytes("ISO-8859-1"),"Cp1251");}


And i even tried to use filter:

package net.fpestde.web;

import javax.servlet.*;
import java.io.IOException;

public class CharsetFilter implements Filter {
  // êîäèðîâêà
  private String encoding;

  public void init(FilterConfig config) throws
ServletException {
    // ÷èòàåì èç êîíôèãóðàöèè
    encoding =
config.getInitParameter("requestEncoding");

    // åñëè íå óñòàíîâëåíà - óñòàíàâëèâàåì Cp1251
    if (encoding == null)
      encoding = "Cp1251";
  }

  public void doFilter(ServletRequest request,
ServletResponse response, FilterChain next)
      throws IOException, ServletException {
    request.setCharacterEncoding(encoding);
    next.doFilter(request, response);
  }

  public void destroy() {
  }
}

And set in web.xml:

...
  <filter>
    <filter-name>Charset Filter</filter-name>
   
<filter-class>net.fpestde.web.CharsetFilter</filter-class>
  </filter>
...
  <filter-mapping>
    <filter-name>Charset Filter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
...


Nothing helped. Oracle NLS encoding is Cp_1251. What
else can i try? PLEASEE!!! HELP ME!

Than

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org