论坛首页 Java企业应用论坛

Seam生命周期

浏览 27610 次
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2011-02-12   最后修改:2011-02-12

Seam,Gavin King发明的JavaEE框架,Gavin King何许人?Hibernate的父亲,一个做强悍ORM的人实现的JavaEE框架又会有什么特点?这个框架对关系数据库做了什么手脚了吗?我们讨论过的贫模型,富模型,DDD和这个框架有点关系吗?在Gavin King眼中,Spring是个什么东西?JCP是个什么东西?Hibernate的代码,Spring的代码,Seam的代码,有何风格?为什么这些牛人不但写程序牛,写书也很牛?

 

这一串问号是我在用JavaEE堆栈技术编程时从脑袋里冒出来的,今天不写那么多,先写一下Seam的生命周期吧!首先提到的必须是JSF,在JavaEye里似乎被骂惨了,没有包打天下的框架,也许只有菜鸟才希望自己掌握的是一个包打天下的框架,JSF也只是web开发中n种模式中的一种,Sun的工程师都是模式专家,所以也把OO铺到了web框架的铁轨上,他们把html表示的界面全部抽象为对象,组件,然后用这些组件去和后台交互,向程序员屏蔽掉了底层的http。

 

JSF现在到了2.0了,以前被人骂的缺点很多似乎在2.0中已经修复和增强,但是Seam2目前还是建立在JSF1.2上的,所以还必须得说一下JSF1.2,JSF一向别人的批评的地方有下面几个:

 

1,自定义组件太难开发

2,第一次请求的虚弱

3,一切皆POST

4,导航太简单

5,生命周期复杂

 

关于这些缺点,Seam都用自己的方式做了修正和增强。Seam之所能够通过自己的手段弥补JSF的缺点,JSF生命周期设计帮了大忙,其实每个web框架都有自己的请求生命周期,只是JSF把这一笔加重了,留下了截面让开发者介入,这个界面就是请求周期中的阶段监听器,Seam利用这个阶段监听器做了大量的工作,看下面这个图吧,Seam把JSF简单的6个阶段扩展到了22个



Seam的生命周期就在JSF的阶段监听器的使唤下步步前进。

 

让我们来看看Seam的启动过程的真实面目,要在应用服务器中使用Seam,必须让Seam钩进Servlet容器的生命周期,当应用程序启动的时候就必须启动Seam,然后Seam开始初始化,Seam一个最大特点就是有状态,所以Servlet容器也要通知Seam Http会话的生命周期,Seam利用过滤器,Servlet和JSF阶段监听器参与一次Servlet请求,同时增强了JSF的生命周期。

 

Seam的开关是一个注册在web.xml中的SeamListener,通过这个监听器,Seam开始初始化,它会扫描路径中所有它认识的组件,然后放进容器中,刚才说了,Seam依赖JSF的阶段监听器,所以必须配置JSF的Servlet和相关JSF配置,当请求到来,先被JSF拦截,然后进入6个生命阶段,Seam随之开始介入,由于JSF规范并没有指示如何支持浏览器请求静态文件,比如CSS,JS,所以Seam提供了自己的Servlet来处理这种资源请求,所以web.xml还得配置这个Servlet,Seam除了再JSF的阶段监听器中做事情之外还对非JSF的请求感兴趣,所以为了拦截非JSF请求,Seam又有自己的过滤器,所以中和起来,Seam应用的web.xml配置如下

 

<!-- Seam -->
         
    <listener>              
      <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>        
    </listener>    

    <filter>
      <filter-name>Seam Filter</filter-name>
      <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
    </filter>

    <filter-mapping>
      <filter-name>Seam Filter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <servlet>
      <servlet-name>Seam Resource Servlet</servlet-name>
      <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>Seam Resource Servlet</servlet-name>
      <url-pattern>/seam/resource/*</url-pattern>
    </servlet-mapping>     
    
    <!-- Faces Servlet -->
    
    <servlet>              
      <servlet-name>Faces Servlet</servlet-name>              
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>              
      <load-on-startup>1</load-on-startup>        
    </servlet>
    
    <servlet-mapping>              
      <servlet-name>Faces Servlet</servlet-name>              
      <url-pattern>*.seam</url-pattern>        
    </servlet-mapping>
    
    <!-- JSF parameters -->
    
    <context-param>        
      <param-name>javax.faces.DEFAULT_SUFFIX</param-name>        
      <param-value>.xhtml</param-value>    
    </context-param>
    
    <context-param>        
      <param-name>facelets.DEVELOPMENT</param-name>        
      <param-value>true</param-value>    
    </context-param>  
    
    <session-config>
        <session-timeout>10</session-timeout> 
    </session-config>
    

 

再贴出Seam的日志以便配合分析

 

 

信息: Initializing Mojarra (1.2_12-b01-FCS) for context '/jboss-seam-hibernate'
2011-02-12 13:52:27,529 INFO [javax.servlet.ServletContextListener] - Welcome to Seam 2.2.0.GA
2011-02-12 13:52:27,529 DEBUG [org.jboss.seam.contexts.ServletLifecycle] - Cached the context classloader in servletContext as 'seam.context.classLoader'
2011-02-12 13:52:29,310 DEBUG [org.jboss.seam.deployment.ClassDescriptor] - could not load class (missing dependency): org.jboss.seam.transaction.EjbSynchronizations
2011-02-12 13:52:29,310 DEBUG [org.jboss.seam.deployment.Scanner] - skipping class org/jboss/seam/transaction/EjbSynchronizations.class because it cannot be loaded (may reference a type which is not available on the classpath)
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/async, package: org.jboss.seam.async, prefix: org.jboss.seam.async
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/framework, package: org.jboss.seam.framework, prefix: org.jboss.seam.core.framework
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/theme, package: org.jboss.seam.theme, prefix: org.jboss.seam.theme
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/security, package: org.jboss.seam.security.management, prefix: org.jboss.seam.security
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/bpm, package: org.jboss.seam.bpm, prefix: org.jboss.seam.bpm
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/mail, package: org.jboss.seam.mail, prefix: org.jboss.seam.mail
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/security, package: org.jboss.seam.security, prefix: org.jboss.seam.security
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/web, package: org.jboss.seam.web, prefix: org.jboss.seam.web
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/captcha, package: org.jboss.seam.captcha, prefix: org.jboss.seam.captcha
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/navigation, package: org.jboss.seam.navigation, prefix: org.jboss.seam.navigation
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/international, package: org.jboss.seam.international, prefix: org.jboss.seam.international
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/core, package: org.jboss.seam.core, prefix: org.jboss.seam.core
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/cache, package: org.jboss.seam.cache, prefix: org.jboss.seam.cache
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/jms, package: org.jboss.seam.jms, prefix: org.jboss.seam.jms
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/ui, package: org.jboss.seam.ui, prefix: org.jboss.seam.ui
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/transaction, package: org.jboss.seam.transaction, prefix: org.jboss.seam.transaction
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/security, package: org.jboss.seam.security.permission, prefix: org.jboss.seam.security
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/drools, package: org.jboss.seam.drools, prefix: org.jboss.seam.drools
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/document, package: org.jboss.seam.document, prefix: org.jboss.seam.document
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.init.Initialization] - Namespace: http://jboss.com/products/seam/persistence, package: org.jboss.seam.persistence, prefix: org.jboss.seam.persistence
2011-02-12 13:52:30,045 DEBUG [org.jboss.seam.util.Resources] - Loaded resource from servlet context: /WEB-INF/components.xml
2011-02-12 13:52:30,045 INFO [org.jboss.seam.init.Initialization] - reading /WEB-INF/components.xml
2011-02-12 13:52:30,185 DEBUG [org.jboss.seam.init.Initialization] - reading jar:file:/C:/Documents%20and%20Settings/xiez/Workspaces/MyEclipse%208.5/.metadata/.me_tcat/webapps/jboss-seam-hibernate/WEB-INF/lib/jboss-seam-ui.jar!/META-INF/components.xml
2011-02-12 13:52:30,185 DEBUG [org.jboss.seam.init.Initialization] - reading jar:file:/C:/Documents%20and%20Settings/xiez/Workspaces/MyEclipse%208.5/.metadata/.me_tcat/webapps/jboss-seam-hibernate/WEB-INF/lib/jboss-seam.jar!/META-INF/components.xml
2011-02-12 13:52:30,201 DEBUG [org.jboss.seam.util.Resources] - Loaded resource from context classloader: seam.properties
2011-02-12 13:52:30,201 INFO [org.jboss.seam.init.Initialization] - reading properties from: /seam.properties
2011-02-12 13:52:30,201 DEBUG [org.jboss.seam.init.Initialization] - not found: /jndi.properties
2011-02-12 13:52:30,201 DEBUG [org.jboss.seam.init.Initialization] - not found: /seam-jndi.properties
2011-02-12 13:52:30,201 DEBUG [org.jboss.seam.init.Initialization] - initializing Seam
2011-02-12 13:52:30,201 DEBUG [org.jboss.seam.contexts.ServletLifecycle] - >>> Begin initialization
2011-02-12 13:52:30,295 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.init, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Init
2011-02-12 13:52:30,326 INFO [org.jboss.seam.init.Initialization] - two components with same name, higher precedence wins: org.jboss.seam.core.locale
2011-02-12 13:52:30,326 INFO [org.jboss.seam.init.Initialization] - two components with same name, higher precedence wins: org.jboss.seam.core.locale
2011-02-12 13:52:30,326 INFO [org.jboss.seam.init.Initialization] - two components with same name, higher precedence wins: org.jboss.seam.core.resourceLoader
2011-02-12 13:52:30,326 INFO [org.jboss.seam.init.Initialization] - two components with same name, higher precedence wins: org.jboss.seam.web.userPrincipal
2011-02-12 13:52:30,326 INFO [org.jboss.seam.init.Initialization] - two components with same name, higher precedence wins: org.jboss.seam.web.isUserInRole
2011-02-12 13:52:30,326 INFO [org.jboss.seam.init.Initialization] - two components with same name, higher precedence wins: org.jboss.seam.transaction.transaction
2011-02-12 13:52:30,326 INFO [org.jboss.seam.init.Initialization] - two components with same name, higher precedence wins: org.jboss.seam.core.expressions
2011-02-12 13:52:30,326 INFO [org.jboss.seam.init.Initialization] - two components with same name, higher precedence wins: org.jboss.seam.web.parameters
2011-02-12 13:52:30,326 INFO [org.jboss.seam.init.Initialization] - two components with same name, higher precedence wins: org.jboss.seam.persistence.persistenceProvider
2011-02-12 13:52:30,326 INFO [org.jboss.seam.init.Initialization] - two components with same name, higher precedence wins: org.jboss.seam.core.manager
2011-02-12 13:52:30,342 DEBUG [org.jboss.seam.util.Resources] - Loaded resource from servlet context: jndi:/localhost/jboss-seam-hibernate/WEB-INF/pages.xml
2011-02-12 13:52:30,342 DEBUG [org.jboss.seam.init.Initialization] - Using Java hot deploy
2011-02-12 13:52:30,342 DEBUG [org.jboss.seam.init.Initialization] - Installing components...
2011-02-12 13:52:30,701 INFO [org.jboss.seam.Component] - Component: authenticator, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.example.hibernate.AuthenticatorAction
2011-02-12 13:52:30,748 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.core.BijectionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:30,795 INFO [org.jboss.seam.Component] - Component: booking, scope: CONVERSATION, type: ENTITY_BEAN, class: org.jboss.seam.example.hibernate.Booking
2011-02-12 13:52:30,810 INFO [org.jboss.seam.Component] - Component: bookingDatabase, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.persistence.ManagedHibernateSession
2011-02-12 13:52:30,810 DEBUG [org.jboss.seam.Component] - bookingDatabase.sessionFactory=#{hibernateSessionFactory}
2011-02-12 13:52:30,857 INFO [org.jboss.seam.Component] - Component: bookingList, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.example.hibernate.BookingListAction
2011-02-12 13:52:30,873 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.TransactionInterceptor), Interceptor(org.jboss.seam.core.BijectionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:30,873 INFO [org.jboss.seam.Component] - Component: changePassword, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.example.hibernate.ChangePasswordAction
2011-02-12 13:52:30,888 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.core.BijectionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:30,888 INFO [org.jboss.seam.Component] - Component: hibernateSessionFactory, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.persistence.HibernateSessionFactory
2011-02-12 13:52:30,888 INFO [org.jboss.seam.Component] - Component: hotel, scope: CONVERSATION, type: ENTITY_BEAN, class: org.jboss.seam.example.hibernate.Hotel
2011-02-12 13:52:30,888 INFO [org.jboss.seam.Component] - Component: hotelBooking, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.example.hibernate.HotelBookingAction
2011-02-12 13:52:30,904 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.core.ConversationInterceptor), Interceptor(org.jboss.seam.core.BijectionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:30,904 INFO [org.jboss.seam.Component] - Component: hotelSearch, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.example.hibernate.HotelSearchingAction
2011-02-12 13:52:30,904 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.core.BijectionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:30,904 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.async.asynchronousExceptionHandler, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.async.AsynchronousExceptionHandler
2011-02-12 13:52:30,904 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.async.dispatcher, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.async.ThreadPoolDispatcher
2011-02-12 13:52:30,920 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:30,935 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.captcha.captcha, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.captcha.Captcha
2011-02-12 13:52:30,935 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.captcha.captchaImage, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.captcha.CaptchaImage
2011-02-12 13:52:30,935 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.ConversationIdGenerator, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationIdGenerator
2011-02-12 13:52:30,935 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:30,935 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.contexts, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Contexts
2011-02-12 13:52:30,935 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.conversation, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Conversation
2011-02-12 13:52:30,935 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.conversationEntries, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationEntries
2011-02-12 13:52:30,935 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.conversationListFactory, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationList
2011-02-12 13:52:30,951 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.conversationPropagation, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationPropagation
2011-02-12 13:52:30,951 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.conversationStackFactory, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationStack
2011-02-12 13:52:30,951 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.events, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.core.Events
2011-02-12 13:52:30,951 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.expressions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.faces.FacesExpressions
2011-02-12 13:52:30,951 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.interpolator, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Interpolator
2011-02-12 13:52:30,951 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.locale, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.international.Locale
2011-02-12 13:52:30,951 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.manager, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.faces.FacesManager
2011-02-12 13:52:30,951 DEBUG [org.jboss.seam.Component] - org.jboss.seam.core.manager.concurrentRequestTimeout=500
2011-02-12 13:52:30,967 DEBUG [org.jboss.seam.Component] - org.jboss.seam.core.manager.conversationTimeout=120000
2011-02-12 13:52:30,967 DEBUG [org.jboss.seam.Component] - org.jboss.seam.core.manager.conversationIdParameter=cid
2011-02-12 13:52:30,967 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.resourceBundle, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.ResourceBundle
2011-02-12 13:52:30,967 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.resourceLoader, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.faces.ResourceLoader
2011-02-12 13:52:30,967 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.core.validators, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Validators
2011-02-12 13:52:30,967 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.document.documentStore, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.document.DocumentStore
2011-02-12 13:52:30,967 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:30,967 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.el.referenceCache, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.el.JBossELReferenceCache
2011-02-12 13:52:30,967 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:30,982 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.exception.exceptions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.exception.Exceptions
2011-02-12 13:52:30,998 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.faces.dataModels, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.faces.DataModels
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.faces.dateConverter, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.faces.DateConverter
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.faces.facesContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.faces.FacesContext
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.faces.facesPage, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.faces.FacesPage
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.faces.httpError, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.faces.HttpError
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.faces.redirect, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.faces.Redirect
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.faces.renderer, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.ui.facelet.FaceletsRenderer
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.faces.switcher, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.faces.Switcher
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.faces.uiComponent, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.faces.UiComponent
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.faces.validation, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.faces.Validation
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.framework.currentDate, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentDate
2011-02-12 13:52:31,013 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.framework.currentDatetime, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentDatetime
2011-02-12 13:52:31,013 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.framework.currentTime, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentTime
2011-02-12 13:52:31,013 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.graphicImage.image, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.ui.graphicImage.Image
2011-02-12 13:52:31,013 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.international.localeSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.international.LocaleSelector
2011-02-12 13:52:31,029 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.international.messagesFactory, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.international.Messages
2011-02-12 13:52:31,029 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.international.statusMessages, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.faces.FacesMessages
2011-02-12 13:52:31,029 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.international.timeZone, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.international.TimeZone
2011-02-12 13:52:31,029 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.international.timeZoneSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.international.TimeZoneSelector
2011-02-12 13:52:31,029 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.international.timeZones, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.international.TimeZones
2011-02-12 13:52:31,045 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,045 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.mail.mailSession, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.mail.MailSession
2011-02-12 13:52:31,060 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.navigation.pages, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.navigation.Pages
2011-02-12 13:52:31,076 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.navigation.safeActions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.navigation.SafeActions
2011-02-12 13:52:31,076 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.persistence.persistenceContexts, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.persistence.PersistenceContexts
2011-02-12 13:52:31,092 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.persistence.persistenceProvider, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.persistence.HibernatePersistenceProvider
2011-02-12 13:52:31,576 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.configurationFactory, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.security.Configuration
2011-02-12 13:52:31,576 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.credentials, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.security.Credentials
2011-02-12 13:52:31,576 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.entityPermissionChecker, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.security.EntityPermissionChecker
2011-02-12 13:52:31,576 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.facesSecurityEvents, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.security.FacesSecurityEvents
2011-02-12 13:52:31,576 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.identifierPolicy, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.security.permission.IdentifierPolicy
2011-02-12 13:52:31,592 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.identity, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.security.Identity
2011-02-12 13:52:31,592 DEBUG [org.jboss.seam.Component] - org.jboss.seam.security.identity.authenticateMethod=#{authenticator.authenticate}
2011-02-12 13:52:31,592 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.identityManager, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.security.management.IdentityManager
2011-02-12 13:52:31,592 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.management.roleAction, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.security.management.action.RoleAction
2011-02-12 13:52:31,592 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.core.ConversationInterceptor), Interceptor(org.jboss.seam.core.BijectionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,592 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.management.roleSearch, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.security.management.action.RoleSearch
2011-02-12 13:52:31,592 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.core.BijectionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,592 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.management.userAction, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.security.management.action.UserAction
2011-02-12 13:52:31,607 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.core.ConversationInterceptor), Interceptor(org.jboss.seam.core.BijectionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,607 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.management.userSearch, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.security.management.action.UserSearch
2011-02-12 13:52:31,607 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.core.BijectionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,607 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.passwordHash, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.security.management.PasswordHash
2011-02-12 13:52:31,607 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.permission.permissionSearch, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.security.permission.action.PermissionSearch
2011-02-12 13:52:31,607 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.core.ConversationInterceptor), Interceptor(org.jboss.seam.core.BijectionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,607 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.permissionManager, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.security.permission.PermissionManager
2011-02-12 13:52:31,607 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,607 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.permissionMapper, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.security.permission.PermissionMapper
2011-02-12 13:52:31,607 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.persistentPermissionResolver, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.security.permission.PersistentPermissionResolver
2011-02-12 13:52:31,607 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.security.rememberMe, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.security.RememberMe
2011-02-12 13:52:31,623 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.theme.themeFactory, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.theme.Theme
2011-02-12 13:52:31,623 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.theme.themeSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.theme.ThemeSelector
2011-02-12 13:52:31,623 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.transaction.facesTransactionEvents, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.transaction.FacesTransactionEvents
2011-02-12 13:52:31,623 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.transaction.synchronizations, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.transaction.SeSynchronizations
2011-02-12 13:52:31,623 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.transaction.transaction, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.transaction.HibernateTransaction
2011-02-12 13:52:31,623 DEBUG [org.jboss.seam.Component] - org.jboss.seam.transaction.transaction.session=#{bookingDatabase}
2011-02-12 13:52:31,638 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.ui.EntityConverter, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.ui.EntityConverter
2011-02-12 13:52:31,638 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.ui.clientUidSelector, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.ui.ClientUidSelector
2011-02-12 13:52:31,638 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,638 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.ui.entityIdentifierStore, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.ui.EntityIdentifierStore
2011-02-12 13:52:31,638 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,638 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.ui.entityLoader, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.ui.JpaEntityLoader
2011-02-12 13:52:31,638 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.transaction.TransactionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,638 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.ui.facelet.faceletCompiler, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.ui.facelet.FaceletCompiler
2011-02-12 13:52:31,638 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.ui.facelet.facesContextFactory, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.ui.facelet.RendererFacesContextFactory
2011-02-12 13:52:31,638 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.ui.facelet.mockHttpSession, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.ui.facelet.HttpSessionManager
2011-02-12 13:52:31,638 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.ui.facelet.mockServletContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.ui.facelet.ServletContextManager
2011-02-12 13:52:31,638 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.ui.graphicImage.graphicImageResource, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.ui.graphicImage.GraphicImageResource
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.ui.graphicImage.graphicImageStore, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.ui.graphicImage.GraphicImageStore
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.ui.resource.webResource, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.ui.resource.WebResource
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.ajax4jsfFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.Ajax4jsfFilter
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.ajax4jsfFilterInstantiator, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.ui.filter.Ajax4jsfFilterInstantiator
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.exceptionFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.ExceptionFilter
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.identityFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.IdentityFilter
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.isUserInRole, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.faces.IsUserInRole
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.loggingFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.LoggingFilter
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.multipartFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.MultipartFilter
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.parameters, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.faces.Parameters
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.redirectFilter, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.web.RedirectFilter
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.servletContexts, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.web.ServletContexts
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.session, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.web.Session
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: org.jboss.seam.web.userPrincipal, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.faces.UserPrincipal
2011-02-12 13:52:31,654 INFO [org.jboss.seam.Component] - Component: register, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.example.hibernate.RegisterAction
2011-02-12 13:52:31,654 DEBUG [org.jboss.seam.Component] - interceptor stack: [Interceptor(org.jboss.seam.core.MethodContextInterceptor), Interceptor(org.jboss.seam.core.BijectionInterceptor), Interceptor(org.jboss.seam.transaction.RollbackInterceptor)]
2011-02-12 13:52:31,670 INFO [org.jboss.seam.Component] - Component: user, scope: SESSION, type: ENTITY_BEAN, class: org.jboss.seam.example.hibernate.User
2011-02-12 13:52:31,670 DEBUG [org.jboss.seam.contexts.Contexts] - starting up: org.jboss.seam.security.persistentPermissionResolver
2011-02-12 13:52:31,670 WARN [org.jboss.seam.security.permission.PersistentPermissionResolver] - no permission store available - please install a PermissionStore with the name 'org.jboss.seam.security.jpaPermissionStore' if persistent permissions are required.
2011-02-12 13:52:31,670 DEBUG [org.jboss.seam.contexts.Contexts] - starting up: org.jboss.seam.security.permissionMapper
2011-02-12 13:52:31,670 DEBUG [org.jboss.seam.contexts.Contexts] - starting up: org.jboss.seam.navigation.pages
2011-02-12 13:52:31,670 DEBUG [org.jboss.seam.util.Resources] - Loaded resource from servlet context: /WEB-INF/pages.xml
2011-02-12 13:52:31,670 DEBUG [org.jboss.seam.navigation.Pages] - reading pages.xml file: /WEB-INF/pages.xml
2011-02-12 13:52:31,763 DEBUG [org.jboss.seam.contexts.Contexts] - starting up: org.jboss.seam.el.referenceCache
2011-02-12 13:52:31,842 DEBUG [org.jboss.seam.contexts.Contexts] - starting up: hibernateSessionFactory
2011-02-12 13:52:31,904 INFO [org.hibernate.cfg.annotations.Version] - Hibernate Annotations 3.4.0.GA
2011-02-12 13:52:31,935 INFO [org.hibernate.cfg.Environment] - Hibernate 3.3.1.GA
2011-02-12 13:52:31,935 INFO [org.hibernate.cfg.Environment] - loaded properties from resource hibernate.properties: {hibernate.bytecode.use_reflection_optimizer=false, hibernate.format_sql=true}
2011-02-12 13:52:31,935 INFO [org.hibernate.cfg.Environment] - Bytecode provider name : javassist
2011-02-12 13:52:32,013 INFO [org.hibernate.cfg.Environment] - using JDK 1.4 java.sql.Timestamp handling
2011-02-12 13:52:32,185 INFO [org.hibernate.annotations.common.Version] - Hibernate Commons Annotations 3.1.0.GA
2011-02-12 13:52:32,185 INFO [org.hibernate.cfg.Configuration] - configuring from resource: /hibernate.cfg.xml
2011-02-12 13:52:32,185 INFO [org.hibernate.cfg.Configuration] - Configuration resource: /hibernate.cfg.xml
2011-02-12 13:52:32,248 INFO [org.hibernate.cfg.Configuration] - Configured SessionFactory: null
2011-02-12 13:52:32,263 INFO [org.hibernate.cfg.search.HibernateSearchEventListenerRegister] - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
2011-02-12 13:52:32,373 INFO [org.hibernate.cfg.AnnotationBinder] - Binding entity from annotated class: org.jboss.seam.example.hibernate.Hotel
2011-02-12 13:52:32,467 INFO [org.hibernate.cfg.annotations.EntityBinder] - Bind entity org.jboss.seam.example.hibernate.Hotel on table Hotel
2011-02-12 13:52:32,576 INFO [org.hibernate.cfg.AnnotationBinder] - Binding entity from annotated class: org.jboss.seam.example.hibernate.User
2011-02-12 13:52:32,576 INFO [org.hibernate.cfg.annotations.EntityBinder] - Bind entity org.jboss.seam.example.hibernate.User on table Customer
2011-02-12 13:52:32,592 INFO [org.hibernate.cfg.AnnotationBinder] - Binding entity from annotated class: org.jboss.seam.example.hibernate.Booking
2011-02-12 13:52:32,592 INFO [org.hibernate.cfg.annotations.EntityBinder] - Bind entity org.jboss.seam.example.hibernate.Booking on table Booking
2011-02-12 13:52:32,795 INFO [org.hibernate.validator.Version] - Hibernate Validator 3.1.0.GA
2011-02-12 13:52:32,842 INFO [org.hibernate.connection.DriverManagerConnectionProvider] - Using Hibernate built-in connection pool (not for production use!)
2011-02-12 13:52:32,842 INFO [org.hibernate.connection.DriverManagerConnectionProvider] - Hibernate connection pool size: 20
2011-02-12 13:52:32,842 INFO [org.hibernate.connection.DriverManagerConnectionProvider] - autocommit mode: false
2011-02-12 13:52:32,842 INFO [org.hibernate.connection.DriverManagerConnectionProvider] - using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:mem:seambooking
2011-02-12 13:52:32,842 INFO [org.hibernate.connection.DriverManagerConnectionProvider] - connection properties: {user=sa, password=****}
2011-02-12 13:52:33,107 INFO [org.hibernate.cfg.SettingsFactory] - RDBMS: HSQL Database Engine, version: 1.8.0
2011-02-12 13:52:33,107 INFO [org.hibernate.cfg.SettingsFactory] - JDBC driver: HSQL Database Engine Driver, version: 1.8.0
2011-02-12 13:52:33,154 INFO [org.hibernate.dialect.Dialect] - Using dialect: org.hibernate.dialect.HSQLDialect
2011-02-12 13:52:33,170 INFO [org.hibernate.transaction.TransactionFactoryFactory] - Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
2011-02-12 13:52:33,170 INFO [org.hibernate.transaction.TransactionManagerLookupFactory] - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - Automatic flush during beforeCompletion(): enabled
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - Automatic session close at end of transaction: disabled
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - JDBC batch size: 15
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - JDBC batch updates for versioned data: disabled
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - Scrollable result sets: enabled
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - JDBC3 getGeneratedKeys(): disabled
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - Connection release mode: auto
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - Default batch fetch size: 1
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - Generate SQL with comments: disabled
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - Order SQL updates by primary key: disabled
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - Order SQL inserts for batching: disabled
2011-02-12 13:52:33,170 INFO [org.hibernate.cfg.SettingsFactory] - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
2011-02-12 13:52:33,185 INFO [org.hibernate.hql.ast.ASTQueryTranslatorFactory] - Using ASTQueryTranslatorFactory
2011-02-12 13:52:33,185 INFO [org.hibernate.cfg.SettingsFactory] - Query language substitutions: {}
2011-02-12 13:52:33,185 INFO [org.hibernate.cfg.SettingsFactory] - JPA-QL strict compliance: disabled
2011-02-12 13:52:33,185 INFO [org.hibernate.cfg.SettingsFactory] - Second-level cache: enabled
2011-02-12 13:52:33,185 INFO [org.hibernate.cfg.SettingsFactory] - Query cache: disabled
2011-02-12 13:52:33,201 INFO [org.hibernate.cfg.SettingsFactory] - Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge
2011-02-12 13:52:33,201 INFO [org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge] - Cache provider: org.hibernate.cache.HashtableCacheProvider
2011-02-12 13:52:33,201 INFO [org.hibernate.cfg.SettingsFactory] - Optimize cache for minimal puts: disabled
2011-02-12 13:52:33,201 INFO [org.hibernate.cfg.SettingsFactory] - Structured second-level cache entries: disabled
2011-02-12 13:52:33,217 INFO [org.hibernate.cfg.SettingsFactory] - Echoing all SQL to stdout
2011-02-12 13:52:33,217 INFO [org.hibernate.cfg.SettingsFactory] - Statistics: disabled
2011-02-12 13:52:33,217 INFO [org.hibernate.cfg.SettingsFactory] - Deleted entity synthetic identifier rollback: disabled
2011-02-12 13:52:33,217 INFO [org.hibernate.cfg.SettingsFactory] - Default entity-mode: pojo
2011-02-12 13:52:33,217 INFO [org.hibernate.cfg.SettingsFactory] - Named query checking : enabled
2011-02-12 13:52:33,326 INFO [org.hibernate.impl.SessionFactoryImpl] - building session factory
2011-02-12 13:52:33,873 INFO [org.hibernate.impl.SessionFactoryObjectFactory] - Not binding factory to JNDI, no JNDI name configured
2011-02-12 13:52:33,904 INFO [org.hibernate.tool.hbm2ddl.SchemaExport] - Running hbm2ddl schema export
2011-02-12 13:52:33,904 INFO [org.hibernate.tool.hbm2ddl.SchemaExport] - exporting generated schema to database
2011-02-12 13:52:33,920 INFO [org.hibernate.tool.hbm2ddl.SchemaExport] - Executing import script: /import.sql
2011-02-12 13:52:33,920 INFO [org.hibernate.tool.hbm2ddl.SchemaExport] - schema export complete
2011-02-12 13:52:33,951 DEBUG [org.jboss.seam.contexts.Contexts] - starting up: org.jboss.seam.security.entityPermissionChecker
2011-02-12 13:52:33,951 DEBUG [org.jboss.seam.contexts.Contexts] - starting up: org.jboss.seam.transaction.facesTransactionEvents
2011-02-12 13:52:33,951 DEBUG [org.jboss.seam.contexts.Contexts] - starting up: org.jboss.seam.security.facesSecurityEvents
2011-02-12 13:52:33,951 DEBUG [org.jboss.seam.contexts.Contexts] - destroying: warRootDeploymentStrategy
2011-02-12 13:52:33,951 DEBUG [org.jboss.seam.contexts.Contexts] - destroying: deploymentStrategy
2011-02-12 13:52:33,951 DEBUG [org.jboss.seam.contexts.Contexts] - destroying: hotDeploymentStrategy
2011-02-12 13:52:33,951 DEBUG [org.jboss.seam.contexts.Contexts] - destroying: org.jboss.seam.core.events
2011-02-12 13:52:33,951 DEBUG [org.jboss.seam.contexts.ServletLifecycle] - <<< End initialization
2011-02-12 13:52:33,951 DEBUG [org.jboss.seam.init.Initialization] - done initializing Seam
2011-02-12 13:52:33,967 INFO [org.jboss.seam.servlet.SeamFilter] - Initializing filter: org.jboss.seam.web.loggingFilter
2011-02-12 13:52:33,967 INFO [org.jboss.seam.servlet.SeamFilter] - Initializing filter: org.jboss.seam.web.ajax4jsfFilter
2011-02-12 13:52:33,998 INFO [org.ajax4jsf.cache.CacheManager] - Selected [org.ajax4jsf.cache.LRUMapCacheFactory] cache factory
2011-02-12 13:52:34,014 INFO [org.ajax4jsf.cache.LRUMapCacheFactory] - Creating LRUMap cache instance using parameters: {facelets.DEVELOPMENT=true, javax.faces.DEFAULT_SUFFIX=.xhtml}
2011-02-12 13:52:34,014 INFO [org.ajax4jsf.cache.LRUMapCacheFactory] - Creating LRUMap cache instance of default capacity
2011-02-12 13:52:34,045 INFO [org.ajax4jsf.cache.CacheManager] - Selected [org.ajax4jsf.cache.LRUMapCacheFactory] cache factory
2011-02-12 13:52:34,045 INFO [org.ajax4jsf.cache.LRUMapCacheFactory] - Creating LRUMap cache instance using parameters: {facelets.DEVELOPMENT=true, javax.faces.DEFAULT_SUFFIX=.xhtml}
2011-02-12 13:52:34,045 INFO [org.ajax4jsf.cache.LRUMapCacheFactory] - Creating LRUMap cache instance of default capacity
2011-02-12 13:52:34,045 INFO [org.jboss.seam.servlet.SeamFilter] - Initializing filter: org.jboss.seam.web.redirectFilter
2011-02-12 13:52:34,045 INFO [org.jboss.seam.servlet.SeamFilter] - Initializing filter: org.jboss.seam.web.exceptionFilter
2011-02-12 13:52:34,045 INFO [org.jboss.seam.servlet.SeamFilter] - Initializing filter: org.jboss.seam.web.multipartFilter
2011-02-12 13:52:34,045 INFO [org.jboss.seam.servlet.SeamFilter] - Initializing filter: org.jboss.seam.web.identityFilter
 

 

 

 

  • 大小: 471.3 KB
   发表时间:2011-02-13  
回首往事,三年前决定使用seam,是我们最大的失误之一。当然了,我们以前使用的是seam 2,当时还不成熟bug很多,性能很差,现在seam3可能会好一些。做做内部应用还可以,做英特网应用,就算了。
0 请登录后投票
   发表时间:2011-02-13  
Seam的定位应该就是企业应用
0 请登录后投票
   发表时间:2011-02-13  
seam 对我来说也是毁誉参半。
开发的快速性,开发工具支持比较好。

性能问题让人痛不欲生啊。
0 请登录后投票
   发表时间:2011-02-21  
貌似2楼对seam很有偏见嘛!呵呵!我觉得内部应用和web服务都可以啊!
0 请登录后投票
   发表时间:2011-02-22  
50341 写道
貌似2楼对seam很有偏见嘛!呵呵!我觉得内部应用和web服务都可以啊!

倒不是偏见,确实是在实践中发现的。当然,要用它做互联网应用也可以,但是“可以”不代表适合。如果你有什么成功案例,欢迎拿出来说说。
0 请登录后投票
   发表时间:2011-02-22  
sulong 写道
50341 写道
貌似2楼对seam很有偏见嘛!呵呵!我觉得内部应用和web服务都可以啊!

倒不是偏见,确实是在实践中发现的。当然,要用它做互联网应用也可以,但是“可以”不代表适合。如果你有什么成功案例,欢迎拿出来说说。

您可以说说您在实践中发现了它的哪些不足呢!?
0 请登录后投票
   发表时间:2011-02-22  
50341 写道
sulong 写道
50341 写道
貌似2楼对seam很有偏见嘛!呵呵!我觉得内部应用和web服务都可以啊!

倒不是偏见,确实是在实践中发现的。当然,要用它做互联网应用也可以,但是“可以”不代表适合。如果你有什么成功案例,欢迎拿出来说说。

您可以说说您在实践中发现了它的哪些不足呢!?

我只用过seam2,seam3没有使用过,不做评论。
1. seam太复杂,学习困难,难以使用,不好招聘。网站大了,需要程序员多了,招个人都难
2. seam在运行时占用的内存太多,浪费硬件资源
3. seam里集成的richfaces什么的,生成的页面太大,很慢,不适合用来做互联网应用。如果不用的话,还要手写html,那还不如不用seam,有个freemarker,velocity或jsp什么的得了
4. seam服务端效率也低,看看它的那个生命周期图就知道了,显示一个表单,提交一个表单这么简单的事,它做出了那么多的事
5. seam不成熟,bug很多,经常出错。

不知道我说的这几点,你同不同意
0 请登录后投票
   发表时间:2011-02-22  
sulong 写道
50341 写道
sulong 写道
50341 写道
貌似2楼对seam很有偏见嘛!呵呵!我觉得内部应用和web服务都可以啊!

倒不是偏见,确实是在实践中发现的。当然,要用它做互联网应用也可以,但是“可以”不代表适合。如果你有什么成功案例,欢迎拿出来说说。

您可以说说您在实践中发现了它的哪些不足呢!?

我只用过seam2,seam3没有使用过,不做评论。
1. seam太复杂,学习困难,难以使用,不好招聘。网站大了,需要程序员多了,招个人都难
2. seam在运行时占用的内存太多,浪费硬件资源
3. seam里集成的richfaces什么的,生成的页面太大,很慢,不适合用来做互联网应用。如果不用的话,还要手写html,那还不如不用seam,有个freemarker,velocity或jsp什么的得了
4. seam服务端效率也低,看看它的那个生命周期图就知道了,显示一个表单,提交一个表单这么简单的事,它做出了那么多的事
5. seam不成熟,bug很多,经常出错。

不知道我说的这几点,你同不同意


1.这个我同意,但是关键还是要看您公司舍不舍得成本问题了
2.我想您指的应该是jboss as在运行时占用的内存吧!
3.我觉得web开发这块,前台确实是个挺恶心的东西,这东西大家都要面对的,你用或者不用rf,需求就在那里,不增不减.谁都没招
4.这点我觉着是这样的,首先jsf是事件驱动的,有它自己的生命周期,而seam是把ejb3.0或者是pojo直接绑定到jsf页面了,那么依照jsf的生命周期来说,它必然会在其生命周期过程中进行拦截.
5.seam我用的时候是2.0,没有发现经常出错,现今,它已经有了2.2.1final了.
我觉得整体来说,性能上不是seam的问题,而是因为它集成的东西较多,例如像hibernate或者jsf这类咱们没有用好而导致看上去seam性能很差的样子.
0 请登录后投票
   发表时间:2011-02-22  
50341 写道
sulong 写道
50341 写道
sulong 写道
50341 写道
貌似2楼对seam很有偏见嘛!呵呵!我觉得内部应用和web服务都可以啊!

倒不是偏见,确实是在实践中发现的。当然,要用它做互联网应用也可以,但是“可以”不代表适合。如果你有什么成功案例,欢迎拿出来说说。

您可以说说您在实践中发现了它的哪些不足呢!?

我只用过seam2,seam3没有使用过,不做评论。
1. seam太复杂,学习困难,难以使用,不好招聘。网站大了,需要程序员多了,招个人都难
2. seam在运行时占用的内存太多,浪费硬件资源
3. seam里集成的richfaces什么的,生成的页面太大,很慢,不适合用来做互联网应用。如果不用的话,还要手写html,那还不如不用seam,有个freemarker,velocity或jsp什么的得了
4. seam服务端效率也低,看看它的那个生命周期图就知道了,显示一个表单,提交一个表单这么简单的事,它做出了那么多的事
5. seam不成熟,bug很多,经常出错。

不知道我说的这几点,你同不同意


1.这个我同意,但是关键还是要看您公司舍不舍得成本问题了
2.我想您指的应该是jboss as在运行时占用的内存吧!
3.我觉得web开发这块,前台确实是个挺恶心的东西,这东西大家都要面对的,你用或者不用rf,需求就在那里,不增不减.谁都没招
4.这点我觉着是这样的,首先jsf是事件驱动的,有它自己的生命周期,而seam是把ejb3.0或者是pojo直接绑定到jsf页面了,那么依照jsf的生命周期来说,它必然会在其生命周期过程中进行拦截.
5.seam我用的时候是2.0,没有发现经常出错,现今,它已经有了2.2.1final了.
我觉得整体来说,性能上不是seam的问题,而是因为它集成的东西较多,例如像hibernate或者jsf这类咱们没有用好而导致看上去seam性能很差的样子.


集成太多,但是又没有模块化,好让人选择集成哪些功能,就是一很大的问题。seam3好像是模块化了,但是受过伤之后已经不想再搞seam了。我们以后会逐步把所有seam应用全都替换掉。争论这种过去的东西已经没有多大意义了,它出来这么多年,就没有被多少人采用,本身就说明了这种技术真的是有问题的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics