Unable to set request character encoding to UTF-8 from context

I am trying to implement an example from Primefaces into a WAB package.

<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" > <h:head> <ui:insert name="header"> <ui:include src="header.xhtml"/> </ui:insert> </h:head> <h:body> <h1><img src="resources/css/images/icon.png" alt="NVIDIA.com" /> History Center</h1> <!-- layer for black background of the buttons --> <div id="toolbar" style="margin: 0 auto; width:1180px; height:30px; position:relative; background-color:black"> <!-- Include page Navigation --> <ui:insert name="Navigation"> <ui:include src="Navigation.xhtml"/> </ui:insert> </div> <div id="logodiv" style="position:relative; top:35px; left:0px;"> <h:graphicImage alt="Demo edit form" style="position:relative; top:-20px; left:9px;" value="resources/images/logo_linuxz.png" /> </div> <div id="main" style="margin: 0 auto; width:1190px; height:700px; position:absolute; background-color:transparent; top:105px"> <div id="mainpage" style="margin: 0 auto; width:1190px; height:500px; position:absolute; background-color:transparent; top:80px"> <div id="settingsHashMap" style="width:350px; height:400px; position:absolute; background-color:r; top:20px; left:1px"> <h:form id="test"> <p:barChart id="basic" value="#{LinuxController.categoryModel}" legendPosition="ne" title="Basic Bar Chart" min="0" max="200" style="height:300px"/> <p:barChart id="horizontal" value="#{LinuxController.categoryModel}" legendPosition="se" style="height:300px" title="Horizontal Bar Chart" orientation="horizontal" min="0" max="200"/> <p:barChart id="stacked" value="#{LinuxController.categoryModel}" legendPosition="ne" style="height:300px" title="Stacked Bar Chart" stacked="true" barMargin="50" min="0" max="300"/> </h:form> </div> </div> </div> </h:body> </html> import org.glassfish.osgicdi.OSGiService; import org.primefaces.model.chart.CartesianChartModel; import org.primefaces.model.chart.ChartSeries; // Update form example @Named("LinuxController") @SessionScoped public class Linux implements Serializable { private CartesianChartModel categoryModel; public Linux() { createCategoryModel(); } public CartesianChartModel getCategoryModel() { return categoryModel; } private void createCategoryModel() { categoryModel = new CartesianChartModel(); ChartSeries boys = new ChartSeries(); boys.setLabel("Boys"); boys.set("2004", 120); boys.set("2005", 100); boys.set("2006", 44); boys.set("2007", 150); boys.set("2008", 25); ChartSeries girls = new ChartSeries(); girls.setLabel("Girls"); girls.set("2004", 52); girls.set("2005", 60); girls.set("2006", 110); girls.set("2007", 135); girls.set("2008", 120); categoryModel.addSeries(boys); categoryModel.addSeries(girls); } } 

When I try to access the JSF page, the page is empty. I get this error in the Glassfish log file:

 [#|2012-06-06T20:53:47.931+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=321;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#] [#|2012-06-06T20:53:48.880+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=323;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#] [#|2012-06-06T20:53:52.714+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=321;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#] [#|2012-06-06T20:53:56.434+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=324;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#] [#|2012-06-06T20:53:57.591+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=322;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#] [#|2012-06-06T20:54:25.828+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=323;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#] [#|2012-06-06T20:54:26.912+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=321;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#] [#|2012-06-06T20:54:28.010+0300|WARNING|glassfish3.1.2|org.apache.catalina.connector.Request|_ThreadID=324;_ThreadName=Thread-2;|PWC4011: Unable to set request character encoding to UTF-8 from context /test, because request parameters have already been read, or ServletRequest.getReader() has already been called|#] 

How can I solve this problem? I suppose this could be caused by a POM configuration?

+6
source share
1 answer

JSF / Facelets uses UTF-8 by default, which are installed when restoring the view, however, the PrimeFaces ajax view handler tries to access the request parameter before restoring the view, so the default character encoding of the server, ISO-8859-1, will be used instead. You need to add the following entry in the <glassfish-web-app> your /WEB-INF/glassfish-web.xml file to tell the Glassfish server to also use UTF-8:

 <parameter-encoding default-charset="UTF-8"/> 

See also:

+25
source

Source: https://habr.com/ru/post/917472/


All Articles