0

そのようなベーキングビーンからデータを取得するjsfページで

<p:dataList value="#{userArtifacts}" var="art" itemType="artifact" type="inset">

java.lang.StackOverflowError が発生しました。

私のバッキングビーンはそのように見えます。プロデューサーにデータをキャッシュさせ、後でそれをオーバーライドしたいのです...

ViewAccessScope 中にリストを維持したいだけです

ところで、Producer を SessionScope に変更しても問題はないようです

@Named
@ViewAccessScoped
public class FArtifacts  implements Serializable{

@PostConstruct
public void init()
{
    artifacts= getArtifactController().getArtifact(15);
    System.out.println("[INIT] Get All Art");

}

@Produces
@ViewAccessScoped
@Named("userArtifacts")
public List<Article> getMyArtifacts()
{

    System.out.println("[CUSTOM] Return all");
    return  artifacts;

}

サーブレットの例外は次のとおりです。

javax.servlet.ServletException
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
    org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)

ループがそのように見えるスタックエラー:

org.jboss.weld.bean.AbstractReceiverBean.getReceiver(AbstractReceiverBean.java:77)
    org.jboss.weld.bean.AbstractProducerBean$AbstractProducer.produce(AbstractProducerBean.java:317)
    org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:307)
    org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.createNewInstanceOfBean(CodiUtils.java:69)
    org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.createNewBeanInstance(AbstractConversationBeanEntry.java:139)
    org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.getBeanInstance(AbstractConversationBeanEntry.java:84)
    org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.DefaultConversation.getBean(DefaultConversation.java:163)
    org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.GroupedConversationContext.resolveBeanInstance(GroupedConversationContext.java:185)
    org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.AbstractGroupedConversationContext.resolve(AbstractGroupedConversationContext.java:114)
    org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.AbstractGroupedConversationContext.create(AbstractGroupedConversationContext.java:79)
    org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.ConversationContextAdapter.get(ConversationContextAdapter.java:81)
    org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:599)
    org.jboss.weld.bean.AbstractReceiverBean.getReceiver(AbstractReceiverBean.java:77)
    org.jboss.weld.bean.AbstractProducerBean$AbstractProducer.produce(AbstractProducerBean.java:317)
    org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:307)
    org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.createNewInstanceOfBean(CodiUtils.java:69)
    org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.createNewBeanInstance(AbstractConversationBeanEntry.java:139)
    org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.getBeanInstance(AbstractConversationBeanEntry.java:84)
    org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.DefaultConversation.getBean(DefaultConversation.java:163)
    org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.GroupedConversationContext.resolveBeanInstance(GroupedConversationContext.java:185)
    org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.AbstractGroupedConversationContext.resolve(AbstractGroupedConversationContext.java:114)
    org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.AbstractGroupedConversationContext.create(AbstractGroupedConversationContext.java:79)
    org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.ConversationContextAdapter.get(ConversationContextAdapter.java:81)
    org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:599)
4

1 に答える 1

0

Window-IDパラメータで問題を引き起こすPrimeFacesの古いバージョンがあります。新しいバージョンを使用している場合は、PrimeFacesチームに問題を報告する必要があります。

于 2012-10-09T22:32:05.207 に答える