Methods can';t从SEAM组件调用方法

Methods can';t从SEAM组件调用方法,methods,components,seam,call,seam2,Methods,Components,Seam,Call,Seam2,我有一个SEAM 2应用程序,我有一个奇怪的情况。我正在使用EclipseIndigo进行开发,我需要创建一个带有网格的页面,其中每一行都有一个按钮,该按钮显示一个带有列表的弹出窗口,您可以通过链接选择列表中的一个项目,并且选中的值显示在该行中 所以我有这个组件: @Name("paramContHome") @Scope(ScopeType.CONVERSATION) public class ParamContHome extends KubeDAO<ParametroSistema&

我有一个SEAM 2应用程序,我有一个奇怪的情况。我正在使用EclipseIndigo进行开发,我需要创建一个带有网格的页面,其中每一行都有一个按钮,该按钮显示一个带有列表的弹出窗口,您可以通过链接选择列表中的一个项目,并且选中的值显示在该行中

所以我有这个组件:

@Name("paramContHome")
@Scope(ScopeType.CONVERSATION)
public class ParamContHome extends KubeDAO<ParametroSistema>{

    private static final long serialVersionUID = 1L;

    @In
    private LoginUser loginUser;

    @In(required=false,create=true)
    private CuentaContHome cuentaContHome;

    public void load(){
        try{
            setInstance(getEntityManager().find(ParametroSistema.class, prctId));
        }catch (Exception e) {
            clearInstance();
            setInstance(new ParametroSistema());
        }
    }

    public void selCuentaParam(ParametroSistema par) {
        setSelParam(par);
        cuentaContHome.getCuentasList();
    }

    public void setCuentaParam(CuentaContable cta) {
        selParam.setValorNum(cta.getId().floatValue());
        selParam.setSelObj(cta);
    }

    ...

    }
但是,当我运行应用程序并进入页面并按下按钮时,它不会调用方法SelcuentParam。我检查了这个,因为我在它里面放了断点,放了System.out.println,但没有调用它。您知道为什么会发生这种情况吗?与组件初始化有关吗


问候。

嗯,我想我找到了问题所在。在我的屏幕中,我遵循一种特定的模式:首先,我有一个xhtml,其中我显示了一个数据库记录的网格,有一个按钮转到第二个xhtml,其中有一个创建新记录的表单。这个按钮开始对话,因此在具有表单(我称之为detail.xhtml)的xhtml中,它开始对话或加入现有的对话。因此,我用下一种方式修改了第一个xhtml(我称之为list.xhtml)的pages.xml:

<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://jboss.com/products/seam/pages"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd">
 <action execute="#{paramContHome.getParametrosContables()}" on-postback="false"/>

       <begin-conversation propagation="begin" join="true" />

</page>


我首先使用的是
,但它给了我一个从长时间运行的对话调用的异常
begin(),请尝试join=true
,因此我将此添加到begin对话中,它可以工作

嗯,我想我找到了问题所在。在我的屏幕中,我遵循一种特定的模式:首先,我有一个xhtml,其中我显示了一个数据库记录的网格,有一个按钮转到第二个xhtml,其中有一个创建新记录的表单。这个按钮开始对话,因此在具有表单(我称之为detail.xhtml)的xhtml中,它开始对话或加入现有的对话。因此,我用下一种方式修改了第一个xhtml(我称之为list.xhtml)的pages.xml:

<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://jboss.com/products/seam/pages"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd">
 <action execute="#{paramContHome.getParametrosContables()}" on-postback="false"/>

       <begin-conversation propagation="begin" join="true" />

</page>


我首先使用的是
,但它给了我一个从长时间运行的对话调用的异常
begin(),请尝试join=true
,因此我将此添加到begin对话中,它可以工作

这似乎不是一个组件初始化问题(否则您将得到NullPointerException)。当你按下按钮时会发生什么?显示任何错误页面,或者控制台中有什么东西?没有,什么也没有发生。在输出中,我得到以下信息:
19:53:39911警告[Component]无法创建Seam组件,作用域未处于活动状态:entityManager(对话)
,但这是正常的,我在应用程序的其他屏幕或目录中得到了此信息,我没有问题。您是否尝试启用Seam的?那么应用服务器的日志呢?如果没有更多的信息,很难弄清楚发生了什么。请在此处发布您可以提供的任何进一步调试信息。`05:38:07386警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:38:12150警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:26245警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:47306警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:47421警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)`这似乎不是组件初始化问题(否则您将得到NullPointerExceptions)。当您按下按钮时会发生什么?会显示任何错误页面,或控制台中出现什么?不会,什么都不会发生。在输出中,我得到以下信息:
19:53:39911 WARN[Component]无法创建Seam组件,作用域未处于活动状态:entityManager(对话)
但这是正常的,我在应用程序的其他屏幕或目录中看到了这一点,我没有问题。您是否尝试过启用Seam?应用程序服务器的日志如何?如果没有更多信息,很难弄清楚发生了什么。请在这里发布您可以提供的任何进一步调试信息。`05:38:07386警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:38:12150警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:26245警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:47306警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:47421警告[component]无法创建Seam组件,作用域未激活:entityManager(对话)`
@In(required=false,create=true)
private CuentaContHome cuentaContHome;
...
public void selCuentaParam(ParametroSistema par) {
setSelParam(par);
cuentaContHome.getCuentasList();
}
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://jboss.com/products/seam/pages"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd">
 <action execute="#{paramContHome.getParametrosContables()}" on-postback="false"/>

       <begin-conversation propagation="begin" join="true" />

</page>