Jsf Omnifaces ViewScope bean被反复创建

Jsf Omnifaces ViewScope bean被反复创建,jsf,primefaces,cdi,omnifaces,Jsf,Primefaces,Cdi,Omnifaces,我正在尝试使用Omnifaces实现ViewScope的CDIBean。使用jsf页面中的ajax调用用primefaces数据表的搜索结果填充列表的Bean方法。如果bean范围设置为session,那么一切都正常工作。当我尝试将作用域设置为OmniFacesViewScope时,容器开始多次无理由地创建和销毁bean。下面是bean代码: ... import javax.inject.Named; import org.omnifaces.cdi.ViewScoped; @Named @

我正在尝试使用Omnifaces实现ViewScope的CDIBean。使用jsf页面中的ajax调用用primefaces数据表的搜索结果填充列表的Bean方法。如果bean范围设置为session,那么一切都正常工作。当我尝试将作用域设置为OmniFacesViewScope时,容器开始多次无理由地创建和销毁bean。下面是bean代码:

...
import javax.inject.Named;
import org.omnifaces.cdi.ViewScoped;

@Named
@ViewScoped
public class FindClientBean implements Serializable {

@Inject
private ClientDAO clientDAO;    
@NotNull(message="Search string cannot be empty")   
private String searchString;
private List<Client> resultList;    

@PostConstruct
public void init() {
    System.out.println("init");
}

@PreDestroy
public void end() {
    System.out.println("end");
}

public void findClient() {
    System.out.println("method");
    resultList = clientDAO.findClientByNameOrLastnamePart(searchString);
}

//Getters and setters..    

}
可能是什么?没有找到相关问题。
我的配置:JBossAS 7.1、Omnifaces 1.6.3、Primefaces 4.0,我也遇到了同样的问题。它对我不起作用的原因是,在我的项目属性->项目方面是3.0版的动态Web项目

但在web.xml中,项目保存为2.5

所以我把2.5改成了3.0,看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>zjazdi</display-name>
  <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>/faces/*</url-pattern>
  </servlet-mapping>
</web-app>

兹贾兹迪
Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
/面孔/*

您在客户端执行什么操作?确切地说是7.1 subversion?7.1.0? 因此,使用Mojarra 2.1.5?而且,当您使用
javax.faces.bean
包中的
@ManagedBean@ViewScoped
时,问题是否消失了?Alexandre:我正试图通过数据库中的ajax请求使用搜索字符串填充primefaces数据表。@BalusC:我正在使用AS 7.1.1和Mojarra JSF 2.1.7。当我使用ManagedBean ViewScope时,一切都正常工作。我目前在JBoss EAP 6.0.1中面临同样的问题
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>zjazdi</display-name>
  <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>/faces/*</url-pattern>
  </servlet-mapping>
</web-app>