2015-11-18 4 views
0

Я пытаюсь понять, почему я получаю javax ViewExpiredException в моем простом webapp - но я, похоже, не понимаю, что вызывает истечение срока действия представления.Javax ViewExpiredException брошен на POST

Это register.jsf:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html> 
<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:b="http://bootsfaces.net/ui" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:f="http://java.sun.com/jsf/core" 
     template="pageTemplate.xhtml"> 

    <ui:define name="content"> 
<b:panel title="Registrierung" look="primary"> 
<h:form> 
    <h:panelGrid> 

     <h:outputText value="Name:"/> 
     <b:inputText value="#{registerController.user.name}" placeholder="Robina Kuh"/> 

     <h:outputText value="E-Mail:"/> 
     <b:inputText value="#{registerController.user.email}" placeholder="[email protected]" size="32"> 
      <f:facet name="prepend"> 
       <h:outputText value="@" /> 
      </f:facet> 
     </b:inputText> 

     <b:commandButton value="Registrieren" icon="envelope" action="#{registerController.registerUser}"/> 
    </h:panelGrid> 
</h:form> 
</b:panel> 
</ui:define> 
</ui:composition> 

Шаблон:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:b="http://bootsfaces.net/ui" 
    xmlns:ui="http://java.sun.com/jsf/facelets"> 
<h:head> 
    <title>Lunch</title> 
</h:head> 
<h:body style="padding: 60px;"> 
    <ui:include src="topMenu.xhtml" /> 

    <ui:insert name="content"> 
     <b:container> 
      <b:jumbotron> 
       <h1>Da ist wohl etwas schiefgelaufen... Sorry!</h1> 
      </b:jumbotron> 
     </b:container> 
    </ui:insert> 
</h:body> 
</html> 

Это контроллер:

@Named("registerController") 
@SessionScoped 
public class RegisterController implements Serializable { 

    @Inject 
    private UserManager userManager; 
    private User user; 

    private Logger logger = Logger.getLogger(RegisterController.class); 

    public RegisterController() { 
     logger.debug("Created RegisterController"); 
     user = new User(); 
     if(user != null) 
      logger.debug("Name: " + user.getName() 
        +"\nEmail: " + user.getEmail()); 

    } 

    public User getUser() { 
     return user; 
    } 

    public void setUser(User user) { 
     this.user = user; 
    } 

    public String registerUser() { 
     logger.debug("registerUser called" 
       + "\n Name: " + user.getName() 
       +"\nEmail: " + user.getEmail()); 


     userManager.addUser(user); 
     logger.debug("registerUser end"); 
     return "benutzer.jsf"; 
    } 
} 

Он даже не входя в метод действия в моей commandButton, когда я пытаюсь его отладить (я использую Framework Bootsfaces, но я не думаю, что это имеет какое-либо отношение к th в Framework).

Настройка состояния сохранения на клиент работает, но я хотел бы понять, в чем проблема? Из того, что я понимаю JSF, это должно работать без нажатия на государство на стороне клиента. Я пропустил что-то фундаментальное?

Я развернул webapp к серверу widlfly 9.

+0

Является ли это приемлемым, как обман? http://stackoverflow.com/questions/25880031/viewexpiredexception-on-a-wildfly-served-webapp-only-in-a-particular-webbrowser/ – BalusC

+0

Привет, Бауке, я прочитал эти и некоторые другие объяснения, но я до сих пор не Не поймите, что вызывает ожидание – Stefan

+0

Ну, вот еще немного пищи для чтения: http://stackoverflow.com/q/3106452 и http://stackoverflow.com/q/3642919 – BalusC

ответ

0

Это была ошибка в используемой версии дикой природы - только что использовала новый выпускной выпуск 10, и он работает так, как должен.