Вот соответствующая часть первопричины:
Caused by: java.lang.NullPointerException
at org.apache.catalina.connector.Request.parseParameters(Request.java:2599)
at org.apache.catalina.connector.Request.getParameter(Request.java:1106)
at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:355)
at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:158)
at javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:158)
at com.sun.faces.context.RequestParameterMap.get(ExternalContextImpl.java:1152)
at com.sun.faces.context.RequestParameterMap.get(ExternalContextImpl.java:1140)
at java.util.Collections$UnmodifiableMap.get(Collections.java:1282)
at com.mounza.homepage.UserHomepageAction.update(UserHomepageAction.java:47)
...
Это исключение указывает, что срок действия HTTP-запроса истек / переработан.Я не вижу ничего в вашем коде, но это исключение, в свою очередь, указывает на то, что вы получаете экземпляр FacesContext
, или ExternalContext
, или карту, возвращаемую ExternalContext#getRequestParameterMap()
как переменную классауправляемый компонент, который живет в более широкой области, чем область запроса, например:
@ManagedBean
@ViewScoped // Or @SessionScoped or @ApplicationScoped
public class UserHomepageAction {
private Map<String, String> params;
public UserHomepageAction() {
params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
}
public void update() {
String value = params.get(name); // Fail!!
// ...
}
}
Вы должны никогда делать это.Время жизни бина охватывает несколько HTTP-запросов.Метод действия bean-компонента вызывается во время HTTP-запроса, отличного от созданного bean-компонента.Вместо этого вы должны получить локальные переменные потока / запроса в локальной области метода:
public void update() {
Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
String value = params.get(name); // OK!!
// ...
}
Не связано с конкретной проблемой: возиться с картой параметров запроса, как будто это запах,Вы смотрели на <f:viewParam>
?Смотри также Что может,а такжеиспользоваться для? .