begangen wurde ich auf meinem Start der Anwendung Laden der Seite die folgende Störung erhalte:Sitzung nicht erstellt werden kann, nachdem Reaktion hat
SEVERE: Error Rendering View[/HomeTemplate/equityVolume.xhtml]
javax.el.ELException: /HomeTemplate/equityVolume.xhtml @70,78 value="#{equityBean.scripList}": java.lang.IllegalStateException: PWC3999: Cannot create a session after the response has been committed...
Caused by: java.lang.IllegalStateException: PWC3999: Cannot create a session after the response has been committed...
ich diese Fehlermeldung erhalten, wenn ich die CSS auf meine Homepage anwenden, verschwindet der Fehler, wenn ich entfernen die CSS-Vorlage (aber ich will die CSS-Vorlage aplly) finden Sie die Bean-Code-snippet, das den Fehler verursacht
public List<MasterScrip> getScripList() {
HttpServletRequest req=(HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest(); //error line
HttpSession session=req.getSession();
type=(String)session.getAttribute("type");...
xHTML-Code (durch Debugging gefunden):
<h:body>
<ui:composition template="commonClientLayout.xhtml">
<ui:define name="contentFile">
<div id="content">
<h:form id="frm">...
wenn ich die ui: Zusammensetzung lösche und Tags definiere (d. H. Wenn ich das CSS nicht anwende, dann bekomme ich diesen Fehler nicht. Was könnte diesen Fehler verursachen und wie löse ich ihn?
bearbeitet:
@PostConstruct
void initialiseSession() {
if(type!=null)
{
if(type.equalsIgnoreCase("losers"))
{
scripList=new ArrayList<MasterScrip>();
scripList=getScripByPriceLosers(exchange);
// return scripList;
}
else if(type.equalsIgnoreCase("gainers"))
{
scripList=new ArrayList<MasterScrip>();
scripList=getScripByPriceGainers(exchange);
// return scripList;
}
else
{
scripList=new ArrayList<MasterScrip>();
scripList=getScripByVolumeType(exchange);
// return scripList;
}
}
else
{
scripList=new ArrayList<MasterScrip>();
scripList=getScripByVolumeType(exchange);
}
}
public List<MasterScrip> getScripList() {
return scripList;
}
bearbeitet wieder:
SEVERE: Error Rendering View[/equityVolume.xhtml]
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.setBufferSize(ResponseFacade.java:275)...
edit: web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Production</param-value>
</context-param>
<context-param>
<param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name>
<param-value>65535</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>equityVolume.xhtml</welcome-file>
</welcome-file-list>
<security-constraint>
<display-name>Constraint1</display-name>
<web-resource-collection>
<web-resource-name>AdminTemplate</web-resource-name>
<description/>
<url-pattern>/AdminTemplate/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<display-name>Constraint2</display-name>
<web-resource-collection>
<web-resource-name>ClientTemplate</web-resource-name>
<description/>
<url-pattern>/ClientTemplate/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>client</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>DataRealm</realm-name>
<form-login-config>
<form-login-page>/equityVolume.xhtml</form-login-page>
<form-error-page>/errorpage.xhtml</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description/>
<role-name>admin</role-name>
</security-role>
<security-role>
<description/>
<role-name>client</role-name>
</security-role>
</web-app>
danke für die Erklärung. Ich setze die Geschäftslogik in der PostConstruct-Methode, immer noch bekomme ich den gleichen Fehler (siehe die bearbeitete Frage). Ich kann nicht weiter in meiner App, was soll ich tun? :( – z22
So die Bean ist einfach nicht irgendwo früher auf der Seite verwiesen? Welche JSF impl/Version verwenden Sie? Ein ähnliches Problem wurde in Mojarra 2.1.8 behoben. Alternativ können Sie die Standard-Antwortpuffergröße ändern und erhöhen – BalusC
ja es wird früher auf der xhtml-Seite referenziert – z22