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