I've narrowed this down as much as possible... Basically I have an @Factory method in stateless action bean. When I hit the page, I get:
| In attribute requires non-null value: test.entity | The same happens if the action is a stateful SB. Here is a simple example which duplicates the behavior: view/test.xhtml | <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | <ui:composition xmlns="http://www.w3.org/1999/xhtml" | xmlns:s="http://jboss.com/products/seam/taglib" | xmlns:ui="http://java.sun.com/jsf/facelets" | xmlns:f="http://java.sun.com/jsf/core" | xmlns:h="http://java.sun.com/jsf/html" | xmlns:rich="http://richfaces.org/rich" | template="layout/template.xhtml"> | | <ui:define name="body"> | | <h:messages globalOnly="true" styleClass="message"/> | | <rich:panel> | <f:facet name="header">Test!</f:facet> | | <h:form> | <h:inputText value='#{testProfile.profileName}' /> | <h:commandButton type="submit" value='Create' action='#{test.biteMe}' /> | | <h:dataTable value='#{something}' var='profile'> | <h:column> | <f:facet name='header'><h:outputText value='Name' /></f:facet> | <h:outputText value='#{profile.profileName}' /> | </h:column> | </h:dataTable> | </h:form> | | </rich:panel> | | </ui:define> | </ui:composition> | action/TestImpl.java: | import java.util.ArrayList; | import java.util.List; | import javax.ejb.Stateless; | import org.jboss.seam.ScopeType; | import org.jboss.seam.annotations.Factory; | import org.jboss.seam.annotations.In; | import org.jboss.seam.annotations.Logger; | import org.jboss.seam.annotations.Name; | import org.jboss.seam.annotations.datamodel.DataModel; | import org.jboss.seam.log.Log; | | @Stateless | @Name("test") | public class TestImpl implements Test { | @Logger Log log; | | public void biteMe() { | log.info( entity.getName() ); | something.add(entity); | } | | @In(scope=ScopeType.EVENT) private TestEntity entity; | | @DataModel(scope=ScopeType.PAGE) List<TestEntity> something; | | @Factory("something") public List<TestEntity> initSomething() { | List<TestEntity> list = new ArrayList<TestEntity>(); | return list; | } | } | action/Test.java | import java.util.List; | import test.model.TestEntity; | import com.enernoc.ess.emulator.model.configuration.Profile; | | public interface Test { | public void biteMe(); | public List<TestEntity> initSomething(); | } | model/TestEntity.java | import javax.persistence.Entity; | import javax.persistence.GeneratedValue; | import javax.persistence.Id; | import javax.persistence.Version; | | import org.jboss.seam.annotations.Name; | | @Entity | @Name("testEntity") | public class TestEntity { | @Id @GeneratedValue private Long ID; | @Version private Long version; | | private String name; | | public String getName() { return this.name; } | public void setName(String name) { this.name = name; } | } | Any help would be greatly appreciated... This is so simple I can't see why it wouldn't work. The @Factory annotation says it is only responsible for the named field, meaning it is only a factory for "something," not "entity". THanks. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4114687#4114687 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4114687 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
