I am trying to set up a seam project that uses EJB3 annotations on the entities 
, JSF for the views, and Hibernate as the persistence manager (Hibernate 
Sessions).

I am able to compile and deploy without errors;  I am even able to invoke pages 
in my app without exceptions.  However, it does not seem that Seam is doing 
what I expect (possibly I have misconfigured something).

What I am trying to do is create the skeleton of a simple login process.  I 
have provided here, the User entity, and the SimpleLogin POJO I created to 
perform the login process:

@Entity
  | @Table(name="user",
  |     uniqueConstraints = [EMAIL PROTECTED](columnNames={"a_number"})}
  | )
  | @EntityListeners(BaseEntity.class)
  | @Name("user")
  | @Scope(ScopeType.SESSION)
  | public class User extends BaseEntity implements Serializable {
  | 
  |     private final Log log = LogFactory.getLog(User.class);
  | 
  |     private static final long serialVersionUID = -795127549881852884L;
  | 
  |     private String aNumber;
  |     private Set<Link> links;
  | 
  |     public User() { log.info("new User()"); }
  | 
  |     @Column(name = "a_number",unique = 
true,insertable=true,nullable=false,updatable=false,length=12)
  |     public String getaNumber() { return aNumber; }
  |     public void setaNumber(String aNumber) { this.aNumber = aNumber; 
log.info("User.setaNumber("+aNumber+")"); }
  | 
  |     @OneToMany(cascade= CascadeType.ALL, mappedBy="user", fetch = 
FetchType.EAGER)
  |     public Set<Link> getLinks() { return links; }
  |     public void setLinks(Set<Link> links) { this.links = links; }
  | 
  | }
  | 

 and here is the SimpleLogin POJO:

@Name(value = "simpleLogin")
  | @Scope(ScopeType.EVENT)
  | public class SimpleLogin {
  | 
  |     @In(required = true) @Out
  |     private User user;
  | 
  |     @In(create=true)
  |     private Session appssoDB;
  | 
  |     @In(create=true)
  |     private FacesMessages facesMessages;
  | 
  |     public String login() {
  |         final User u = (User)appssoDB.createQuery("from User where 
aNumber=:aNumber")
  |             .setParameter("aNumber",user.getaNumber())
  |             .uniqueResult();
  |         if (user == null) {
  |             facesMessages.add("Invalid A Number");
  |             return "login";
  |         } else {
  |             return "loggedIn";
  |         }
  |     }
  | }
  | 

now here is a page that I borrowed from one of the Seam examples and adapted to 
use these beans:

<h:form>
  | <div id="document">
  |     <div id="container">
  |             <div id="sidebar">
  |                     <fieldset>
  |                             <div>
  |                                     <h:outputLabel for="username">Login 
Name</h:outputLabel>
  |                                     <h:inputText id="username" 
value="#{user.aNumber}" style="width: 175px;" />
  |                             </div>
  |                             <div class="errors"><h:messages 
globalOnly="true"/></div>
  |                             <div class="buttonBox"><h:commandButton 
action="#{simpleLogin.login}" value="Account Login" class="button" /></div>
  |                             <div class="notes"><h:commandLink 
action="register">Register User</h:commandLink> | Ask for Help</div>
  |                     </fieldset>
  |             </div>
  |     <div id="footer">Created with JBoss Seam, Facelets, and JSF 1.1.01 Ref. 
Impl.</div>
  |   </div>
  | </div>
  | </h:form>
  | <ui:debug hotkey="D"/>
  | #{conversation.id}
  | 

When I deploy the app, I get the following (relevant snippets?) in the server 
console:


  | 11:19:32,743 INFO  [ServletContextListener] Welcome to Seam 1.0 rc1
  | 11:19:32,758 INFO  [Initialization] initializing Seam
  | ...
  | ...
  | ...
  | 11:19:35,868 INFO  [User] new User()
  | 11:19:35,915 INFO  [User] new User()
  | 11:19:35,915 INFO  [User] User.setaNumber(null)
  | 11:19:36,040 INFO  [SessionFactoryObjectFactory] Factory name: 
java:/appssoSessionFactory
  | 11:19:36,040 INFO  [NamingHelper] JNDI InitialContext properties:{}
  | 11:19:36,055 INFO  [SessionFactoryObjectFactory] Bound factory to JNDI 
name: java:/appssoSessionFactory
  | ...
  | ...
  | 

There are no exceptions in the deployment and it appears from the lines above 
that Seam is started and hibernate is aware of my User class.

So I invoke my main.seam page.. everthing displays 'just fine' no exceptions - 
I get conversation.id = 1, which I take to mean that seam is participating in 
the request processing successfully.  Here is the server.log contents that I 
see when I invoke main.seam


  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.lifecycle.LifecycleImpl] 
execute([EMAIL PROTECTED])
  | 2006-04-24 11:31:30,167 DEBUG [org.jboss.seam.contexts.Lifecycle] >>> Begin 
web request
  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.lifecycle.RestoreViewPhase] 
Entering RestoreViewPhase
  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
URL pattern of the FacesServlet executing the current request .jsf
  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
viewId after appending the context suffix /main.xhtml
  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.application.StateManagerImpl] 
Begin restoring view in session for viewId /main.xhtml
  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.application.StateManagerImpl] 
Restoring view from session for viewId /main.xhtml
  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.application.StateManagerImpl] 
End restoring view in session for viewId /main.xhtml
  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.lifecycle.RestoreViewPhase] 
New request: creating a view for /main.jsf
  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
Created new view for /main.jsf
  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
Locale for this view as determined by calculateLocale en
  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
RenderKitId for this view as determined by calculateRenderKitId HTML_BASIC
  | 2006-04-24 11:31:30,167 DEBUG [com.sun.faces.lifecycle.RestoreViewPhase] 
Exiting RestoreViewPhase
  | 2006-04-24 11:31:30,167 DEBUG [org.jboss.seam.Component] instantiating Seam 
component: org.jboss.seam.core.manager
  | 2006-04-24 11:31:30,183 DEBUG [org.jboss.seam.core.Manager] No stored 
conversation
  | 2006-04-24 11:31:30,183 DEBUG [org.jboss.seam.contexts.Contexts] found in 
application context: org.jboss.seam.core.init
  | 2006-04-24 11:31:30,183 DEBUG [org.jboss.seam.jsf.SeamPhaseListener] After 
restore view, conversation context: ConversationContext(3)
  | 2006-04-24 11:31:30,183 DEBUG [com.sun.faces.lifecycle.LifecycleImpl] 
Skipping rest of execute() because of a reload
  | 2006-04-24 11:31:30,183 DEBUG [com.sun.faces.lifecycle.LifecycleImpl] 
render([EMAIL PROTECTED])
  | 2006-04-24 11:31:30,183 DEBUG [org.jboss.seam.Component] instantiating Seam 
component: facesMessages
  | 2006-04-24 11:31:30,183 DEBUG [com.sun.faces.lifecycle.RenderResponsePhase] 
Entering RenderResponsePhase
  | 2006-04-24 11:31:30,183 DEBUG [com.sun.faces.lifecycle.RenderResponsePhase] 
About to render view /main.jsf
  | 2006-04-24 11:31:30,183 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
URL pattern of the FacesServlet executing the current request .jsf
  | 2006-04-24 11:31:30,183 DEBUG 
[com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer] 
component.getValue() returned null
  | 2006-04-24 11:31:30,183 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
resolving name: user
  | 2006-04-24 11:31:30,183 DEBUG [org.jboss.seam.Component] seam component not 
found: user
  | 2006-04-24 11:31:30,183 DEBUG [com.sun.faces.application.ApplicationImpl] 
Couldn't find a factory for user
  | 2006-04-24 11:31:30,183 DEBUG [com.sun.faces.el.VariableResolverImpl] 
resolveVariable: Resolved variable:null
  | 2006-04-24 11:31:30,183 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
could not resolve name
  | 2006-04-24 11:31:30,183 DEBUG 
[com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer] 
component.getValue() returned null
  | 2006-04-24 11:31:30,199 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
URL pattern of the FacesServlet executing the current request .jsf
  | 2006-04-24 11:31:30,199 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
resolving name: user
  | 2006-04-24 11:31:30,199 DEBUG [org.jboss.seam.Component] seam component not 
found: user
  | 2006-04-24 11:31:30,199 DEBUG [com.sun.faces.application.ApplicationImpl] 
Couldn't find a factory for user
  | 2006-04-24 11:31:30,199 DEBUG [com.sun.faces.el.VariableResolverImpl] 
resolveVariable: Resolved variable:null
  | 2006-04-24 11:31:30,199 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
could not resolve name
  | 2006-04-24 11:31:30,214 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
resolving name: conversation
  | 2006-04-24 11:31:30,214 DEBUG [org.jboss.seam.Component] instantiating Seam 
component: conversation
  | 2006-04-24 11:31:30,214 DEBUG [com.sun.faces.application.ApplicationImpl] 
Couldn't find a factory for conversation
  | 2006-04-24 11:31:30,214 DEBUG [com.sun.faces.el.VariableResolverImpl] 
resolveVariable: Resolved variable:null
  | 2006-04-24 11:31:30,214 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
resolved name to seam component
  | 2006-04-24 11:31:30,214 DEBUG [com.sun.faces.lifecycle.RenderResponsePhase] 
Exiting RenderResponsePhase
  | 2006-04-24 11:31:30,214 DEBUG [org.jboss.seam.contexts.Lifecycle] After 
render response, destroying contexts
  | 2006-04-24 11:31:30,214 DEBUG [org.jboss.seam.contexts.Lifecycle] 
destroying event context
  | 2006-04-24 11:31:30,214 DEBUG [org.jboss.seam.contexts.Contexts] 
destroying: org.jboss.seam.core.manager
  | 2006-04-24 11:31:30,214 DEBUG [org.jboss.seam.contexts.Lifecycle] 
destroying conversation context
  | 2006-04-24 11:31:30,214 DEBUG [org.jboss.seam.contexts.Contexts] 
destroying: facesMessages
  | 2006-04-24 11:31:30,214 DEBUG [org.jboss.seam.contexts.Contexts] 
destroying: conversation
  | 2006-04-24 11:31:30,214 DEBUG [org.jboss.seam.contexts.Lifecycle] flushing 
server-side conversation context
  | 2006-04-24 11:31:30,214 DEBUG [org.jboss.seam.contexts.Lifecycle] <<< End 
web request
  | 

 Then, I type in a value for the user.aNumber field and click my 'Account 
Login' button - here is the server log:


  | 2006-04-24 11:34:32,938 DEBUG 
[org.jboss.resource.connectionmanager.IdleRemover] run: IdleRemover notifying 
pools, interval: 450000
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.lifecycle.LifecycleImpl] 
execute([EMAIL PROTECTED])
  | 2006-04-24 11:34:37,110 DEBUG [org.jboss.seam.contexts.Lifecycle] >>> Begin 
web request
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.lifecycle.RestoreViewPhase] 
Entering RestoreViewPhase
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
URL pattern of the FacesServlet executing the current request .jsf
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
viewId after appending the context suffix /main.xhtml
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.application.StateManagerImpl] 
Begin restoring view in session for viewId /main.xhtml
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.application.StateManagerImpl] 
Restoring view from session for viewId /main.xhtml
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.application.StateManagerImpl] 
End restoring view in session for viewId /main.xhtml
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.lifecycle.RestoreViewPhase] 
New request: creating a view for /main.jsf
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
Created new view for /main.jsf
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
Locale for this view as determined by calculateLocale en
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
RenderKitId for this view as determined by calculateRenderKitId HTML_BASIC
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.lifecycle.RestoreViewPhase] 
Exiting RestoreViewPhase
  | 2006-04-24 11:34:37,110 DEBUG [org.jboss.seam.Component] instantiating Seam 
component: org.jboss.seam.core.manager
  | 2006-04-24 11:34:37,110 DEBUG [org.jboss.seam.core.Manager] No stored 
conversation
  | 2006-04-24 11:34:37,110 DEBUG [org.jboss.seam.contexts.Contexts] found in 
application context: org.jboss.seam.core.init
  | 2006-04-24 11:34:37,110 DEBUG [org.jboss.seam.jsf.SeamPhaseListener] After 
restore view, conversation context: ConversationContext(4)
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.lifecycle.LifecycleImpl] 
render([EMAIL PROTECTED])
  | 2006-04-24 11:34:37,110 DEBUG [org.jboss.seam.Component] instantiating Seam 
component: facesMessages
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.lifecycle.RenderResponsePhase] 
Entering RenderResponsePhase
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.lifecycle.RenderResponsePhase] 
About to render view /main.jsf
  | 2006-04-24 11:34:37,110 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
URL pattern of the FacesServlet executing the current request .jsf
  | 2006-04-24 11:34:37,110 DEBUG 
[com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer] 
component.getValue() returned null
  | 2006-04-24 11:34:37,110 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
resolving name: user
  | 2006-04-24 11:34:37,110 DEBUG [org.jboss.seam.Component] seam component not 
found: user
  | 2006-04-24 11:34:37,125 DEBUG [com.sun.faces.application.ApplicationImpl] 
Couldn't find a factory for user
  | 2006-04-24 11:34:37,125 DEBUG [com.sun.faces.el.VariableResolverImpl] 
resolveVariable: Resolved variable:null
  | 2006-04-24 11:34:37,125 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
could not resolve name
  | 2006-04-24 11:34:37,125 DEBUG 
[com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer] 
component.getValue() returned null
  | 2006-04-24 11:34:37,125 DEBUG [com.sun.faces.application.ViewHandlerImpl] 
URL pattern of the FacesServlet executing the current request .jsf
  | 2006-04-24 11:34:37,125 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
resolving name: user
  | 2006-04-24 11:34:37,125 DEBUG [org.jboss.seam.Component] seam component not 
found: user
  | 2006-04-24 11:34:37,125 DEBUG [com.sun.faces.application.ApplicationImpl] 
Couldn't find a factory for user
  | 2006-04-24 11:34:37,125 DEBUG [com.sun.faces.el.VariableResolverImpl] 
resolveVariable: Resolved variable:null
  | 2006-04-24 11:34:37,125 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
could not resolve name
  | 2006-04-24 11:34:37,141 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
resolving name: conversation
  | 2006-04-24 11:34:37,141 DEBUG [org.jboss.seam.Component] instantiating Seam 
component: conversation
  | 2006-04-24 11:34:37,141 DEBUG [com.sun.faces.application.ApplicationImpl] 
Couldn't find a factory for conversation
  | 2006-04-24 11:34:37,141 DEBUG [com.sun.faces.el.VariableResolverImpl] 
resolveVariable: Resolved variable:null
  | 2006-04-24 11:34:37,141 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] 
resolved name to seam component
  | 2006-04-24 11:34:37,141 DEBUG [com.sun.faces.lifecycle.RenderResponsePhase] 
Exiting RenderResponsePhase
  | 2006-04-24 11:34:37,141 DEBUG [org.jboss.seam.contexts.Lifecycle] After 
render response, destroying contexts
  | 2006-04-24 11:34:37,141 DEBUG [org.jboss.seam.contexts.Lifecycle] 
destroying event context
  | 2006-04-24 11:34:37,141 DEBUG [org.jboss.seam.contexts.Contexts] 
destroying: org.jboss.seam.core.manager
  | 2006-04-24 11:34:37,141 DEBUG [org.jboss.seam.contexts.Lifecycle] 
destroying conversation context
  | 2006-04-24 11:34:37,141 DEBUG [org.jboss.seam.contexts.Contexts] 
destroying: facesMessages
  | 2006-04-24 11:34:37,141 DEBUG [org.jboss.seam.contexts.Contexts] 
destroying: conversation
  | 2006-04-24 11:34:37,141 DEBUG [org.jboss.seam.contexts.Lifecycle] flushing 
server-side conversation context
  | 2006-04-24 11:34:37,141 DEBUG [org.jboss.seam.contexts.Lifecycle] <<< End 
web request
  | 

When I look at the server console for both requests - I see no indication that 
a new User class has been created and that it's setaNumber() method has been 
invoked.  I studied the example code and the seam documentation carefully 
w.r.t. setting up a Seam application for Hibernate in a Java EE environment - 
nothing stands out.  I am using JBoss 4.0.4.CR2 with EJB installed.

Any help in understanding why my named components are not being 'associated' 
with the page is appreciated.

Thanks.

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3938968#3938968

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3938968


-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to