"[EMAIL PROTECTED]" wrote : Yes, it works. It's just a new name. Are you using a seam managed persistence context?
Yes, definitely. Here's the scenario, which is just like basically every other web application on the planet: A user goes to a login-page, logs in, the "User" object is stored in the session, and then the user can access a bunch of protected pages that display and manipulate the "user" object. Just what every web app anywhere does. Here's what I've got: <!DOCTYPE faces-config PUBLIC | "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" | "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> | | <faces-config> | | <application> | <view-handler>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</view-handler> | </application> | | <!-- We use the Seam Managed Persistence Context (SMPC) to avoid --> | <!-- the dreaded LazyInitializationExceptions --> | <lifecycle> | <phase-listener>org.jboss.seam.jsf.TransactionalSeamPhaseListener</phase-listener> | </lifecycle> | | <!-- a couple of converters also, removed for brevity --> | | </faces-config> and the LoginAction bean, with some boilerplate deleted: | @Stateful | @Name("login") | public class LoginAction implements Login { | | @In(required=false) @Out(required=false) | private Customer customer; | | private String name = null; | | private String password = null; | | @In(create=true) | private transient FacesMessages facesMessages; | | /** Injected not created */ | @In(create=true) EntityManager smpc; | | public String gatewayLogin() { | if(smpc == null) { | logger.severe("No entity manager was found, so this will not work."); | return "/internal-error.jsp"; | } | | if(password == null) return "internal-login"; | | if(name == null) return "internal-login"; | | password = password.trim().toLowerCase(); | | final List<Customer> results = smpc.createQuery("from Customer where " + | "name = :name and password = :password") | .setParameter("name", name) | .setParameter("password", getPassword()) | .getResultList(); | if (results.isEmpty()) { | logger.info("no such customer was found"); | facesMessages.add("invalidLogin", | new FacesMessage("The username or password was invalid")); | customer = null; | } else { | customer = results.get(0); | logger.info("About to log in this customer: " + customer); | return "/customer/index"; | } | } | And persistence.xml: <persistence> | <persistence-unit name="foo"> | <jta-data-source>java:/FooDS</jta-data-source> | | <properties> | <property name="hibernate.hbm2ddl.auto" | value="update"/> | | <property name="jboss.entity.manager.factory.jndi.name" | value="java:/EntityManagerFactories/smpcData"/> | | </properties> | </persistence-unit> | </persistence> | And components.xml: | <components> | | <component name="org.jboss.seam.core.init"> | <property name="debug">true</property> | <property name="jndiPattern">Foo/#{ejbName}/local</property> | <property name="myFacesLifecycleBug">false</property> | </component> | | <!-- 120 second conversation timeout --> | <component name="org.jboss.seam.core.manager"> | <property name="conversationTimeout">120000</property> | </component> | | <!-- We can use Seam-managed persistence context to avoid --> | <!-- dreaded LazyInitializationExceptions --> | <component name="smpc" | class="org.jboss.seam.core.ManagedPersistenceContext"> | <property name="persistenceUnitJndiName">java:/EntityManagerFactories/smpcData</property> | | </component> | | </components> | And finally, the Customer class itself, trimmed: | @Entity | @Name("customer") | @Scope(ScopeType.SESSION) | @Roles([EMAIL PROTECTED](name="createCustomer",scope=ScopeType.CONVERSATION)}) | public class Customer extends Person implements Serializable { | Anyway, after I do the login, the "customer" is properly set in the HTTP session, as you would expect, but when I go to access some collection from the customer object, I get a LIE. I'm totally baffled by this, because I thought that SMPC was supposed to nearly eliminate LIEs. Thanks for any help. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3996359#3996359 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3996359 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user