`
oojdon
  • 浏览: 40625 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Seam生命周期

阅读更多

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
分享到:
评论
7 楼 sulong 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很多,经常出错。

不知道我说的这几点,你同不同意
6 楼 50341 2011-02-22  
sulong 写道
50341 写道
貌似2楼对seam很有偏见嘛!呵呵!我觉得内部应用和web服务都可以啊!

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

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

倒不是偏见,确实是在实践中发现的。当然,要用它做互联网应用也可以,但是“可以”不代表适合。如果你有什么成功案例,欢迎拿出来说说。
4 楼 50341 2011-02-21  
貌似2楼对seam很有偏见嘛!呵呵!我觉得内部应用和web服务都可以啊!
3 楼 may_cauc 2011-02-13  
seam 对我来说也是毁誉参半。
开发的快速性,开发工具支持比较好。

性能问题让人痛不欲生啊。
2 楼 oojdon 2011-02-13  
Seam的定位应该就是企业应用
1 楼 sulong 2011-02-13  
回首往事,三年前决定使用seam,是我们最大的失误之一。当然了,我们以前使用的是seam 2,当时还不成熟bug很多,性能很差,现在seam3可能会好一些。做做内部应用还可以,做英特网应用,就算了。

相关推荐

    seam_in_action

    - **第3章:Seam生命周期**:深入探讨 Seam 生命周期的概念及其对应用程序的影响。 - **第4章:组件和上下文**:讲解 Seam 中组件和上下文的基本概念,以及它们如何协作来实现业务逻辑。 - **第5章:Seam组件描述符*...

    seam in action

    - **概念介绍**:Seam生命周期是指Seam组件从创建到销毁的过程。 - **重要性分析**:理解Seam的生命周期对于正确地实现组件的行为至关重要,例如在合适的时机执行特定逻辑或清理资源。 - **阶段划分**:主要包括...

    Manning Seam in Action 2008

    - **第3章:Seam生命周期**(P83) - 解释Seam组件的生命周期模型。 - 分析组件在不同阶段的行为。 - **第4章:组件和上下文**(P130) - 探讨Seam中的组件是如何组织和管理的。 - 讲解上下文的概念及其在Seam...

    Manning - Seam in Action

    - **Seam生命周期**:Seam定义了一套独特的生命周期模型,该模型基于组件和上下文的概念,使得开发人员能够更好地理解和控制应用程序的执行流程。 - **组件与上下文**:Seam中的组件是应用程序的基本构建单元,而上...

    Seam in Action - MEAP - 2008

    - **生命周期概念**:Seam 定义了一个清晰的应用程序生命周期,包括多个阶段,每个阶段都有特定的目的和操作。 - **关键阶段**:Seam 生命周期包括但不限于初始化、渲染、事件处理等阶段。通过理解这些阶段,...

    Seam框架文档简述

    Seam引入了一种声明式的会话管理机制,支持多种生命周期,如页面生命周期、对话生命周期等。这种机制可以帮助开发者更容易地管理Web应用的状态。 ##### 5. 使用注解配置而非XML Seam鼓励使用注解来进行配置,而...

    seam参考手册中文版

    - **组件生命周期管理**:Seam提供了丰富的组件生命周期管理机制,能够帮助开发者更好地控制组件的创建、销毁等过程。 - **面向业务的编程**:Seam强调以业务为中心进行开发,而非仅仅关注技术细节,有助于提高开发...

    为Seam做好准备

    JSF是一种MVC(Model-View-Controller)框架,了解其组件模型和生命周期对于使用Seam至关重要。 3. **Java Persistence API (JPA)**:JPA是Java EE中的ORM(对象关系映射)标准,允许开发者用面向对象的方式操作...

    JBOSS SEAM组件中文手册

    Seam自动管理组件的生命周期,包括创建、初始化、销毁等过程。 2. **事件(Events)**: 事件模型是Seam的一大特色,允许组件之间通过发布和监听事件进行通信,增强了组件间的解耦合。 3. **注入(Injection)**: ...

    seam需要的jar包

    其次,CDI是Java EE 6引入的一项服务,用于管理对象的生命周期和依赖关系。Seam充分利用了CDI,使得组件注入变得更加简单和灵活。压缩包中的`cdi-api.jar`和`weld-servlet.jar`等文件,代表了CDI的API和Weld实现,...

    jboss-seam2.0文档

    Seam 2.0引入了CDI,这是Java EE 6中的一个重要组成部分,它提供了一种统一的依赖注入机制,简化了对象的生命周期管理和依赖管理。 2.4 JPA集成 Seam 2.0与JPA的集成使得数据库操作变得更加简单,支持实体管理和...

    Seam - 语境相关的组件

    Seam中的组件系统基于CDI(Contexts and Dependency Injection),这是一个Java EE规范,负责管理对象的生命周期和依赖注入。CDI允许开发者声明依赖关系,而无需手动创建和管理对象。通过注解,你可以告诉Seam何时、...

    JSF项目中seam的配置

    这是Seam启动的基础,监听器会在JSF的生命周期中插入Seam特有的行为,比如对话管理。Seam通过这个监听器能够增强JSF的各个阶段,并引入CONVERSATION生命周期,这是Seam的一个核心特性。 ```xml ...

    Seam in Action

    CDI(Contexts and Dependency Injection)是Java EE 6引入的一项重要特性,用于管理对象的生命周期和依赖关系。Seam扩展了CDI,增加了更多的上下文和事件支持,使得组件之间的协作更加灵活。 除了上述核心功能,...

    seam2 in tomcat lib

    这包括设置`filter-class`为`org.jboss.seam.servlet.SeamFilter`,并配置`&lt;listener&gt;`来启动Seam的生命周期管理。 3. **数据库连接**:由于没有内置的EJB容器,你需要自己处理JNDI查找和数据库连接。这可能意味着...

    Jboss Seam中文版

    5. **生命周期方法**:介绍了组件在不同阶段触发的回调方法,帮助开发者更好地控制组件的行为。 6. **条件安装**:允许根据特定条件决定是否安装某个组件。 7. **日志**:提供了Seam的日志记录机制,帮助开发者诊断...

    Jboss seam3 实战

    - Seam引入了会话模型,支持对话(Conversation)的生命周期管理。 - Seam集成了一系列Java EE技术,包括EJB3、JSF、JPA等,实现了一个统一的应用栈。 2. JBoss Seam3特性: - Seam3的构建工具主要使用Maven。 ...

Global site tag (gtag.js) - Google Analytics