Hirdetés

Új hozzászólás Aktív témák

  • Lortech
    addikt

    WARN [org.hibernate.jpa.internal.EntityManagerFactoryRegistry] (default task-3) HHH000436: Entity manager factory name (provajder) is already registered. If entity manager will be clustered or passivated, specify a unique value for property 'hibernate.ejb.entitymanager_factory_name'

    Ha @ManagedBean(name="AnnoTestAdd")
    @RequestScoped
    public class TestAdd {
    private EntityManagerFactory factory= Persistence.createEntityManagerFactory("Ulyprov");
    private String username;
    private String name;
    ....

    Semmi sem történik a JSF-ből való metódushívásra (semmi üzenet), ha:

    @ManagedBean(name="AnnoTestAdd")
    @RequestScoped
    public class TestAdd {
    private static final EntityManagerFactory factory= Persistence.createEntityManagerFactory("Ulyprov");
    private String username;
    private String name;

    És akkor sem történik semmi ha applicationscoped-re változtatom.

    (most már jól emlékszem hogy régen is 10% volt a programozás, 90% a keretrendszerek lelki világának, és bugjainak a kitesztelése :) )

    És mindez azért történik, mert <h:selectOneMenu value="#{AnnoTestAdd.type}">
    <f:selectItems value="#{AnnoTestAdd.type}"/>
    </h:selectOneMenu>

    Ha ez nincs, működik. :F ez még is mi a....?

    Na ez az az irány, amit nem kéne erőltetni.
    Javaslom, szervezd EJB-be az üzleti logikádat és az adathozzáférést, és azt injektáld a JSF managed beanbe. Mert az nem arra való, hogy direktben JPA-zz és tranzakciót kezelj benne.
    AZ EJB-be pedig injektáld az entitymanageredet pl. az általam fentebb írd módon. Így nem kell foglalkoznod az entitymanager létrehozásával, életciklusával (pl. hogy többször létrehozod a factory-t, mint ahogy tetted).
    BalusC tutorialjait, megoldásait érdemes olvasni, ő jó forrása a JSF-fel kapcsolatos megoldásoknak: [link]

    JAAS-hoz: a login-config.xml az jboss szerinti leíró, wildfly-on máshogy néz ki.
    wildfly login module pl (standalone.xml vagy domain.xml megfelelő profiljában):

    <security-domain name="xysecdomain">
    <authentication>
    <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
    <module-option name="dsJndiName" value="ds jdni név"/>
    ... többi opció ...
    </login-module>
    </authentication>
    </security-domain>

    De mindez megtehető webes admin konzolból is.
    Aztán jboss-web.xml-ben kell egy <security-domain>xysecdomain</security-domain> hivatkozás, ami a webalkalmazásodat összekapcsolja a security domainnel wildfly-ban.

    selectItem vs enum passz, szerencsére már rég JSF-eztem.

Új hozzászólás Aktív témák