Transaction strategy requires access to the JTA TransactionM
rschlege Jul 28, 2006 9:54 AMThere is an impressing Blog entry from Brian Leonards:
http://weblogs.java.net/blog/bleonard/archive/2006/05/the_best_featur_1.html which shows how to use Netbeans for generating Entity Classes, Controller Classes and even example JSF pages. I used Netbeans 5.5 Beta2 and JBoss 4.0.4, didn't install Hibernate on JBoss because I believe it's bundled (isn't it?).
The code generation, compilation, and deployment worked all quite well. Its just when I want to browse to one of the generated pages when the following exception occours:
exception javax.servlet.ServletException: Cannot get value for expression 'Item #{statustype.firstItem + 1}..#{statustype.lastItem} of #{statustype.itemCount}' javax.faces.webapp.FacesServlet.service(FacesServlet.java:121) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) root cause javax.faces.FacesException: Cannot get value for expression 'Item #{statustype.firstItem + 1}..#{statustype.lastItem} of #{statustype.itemCount}' org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:421) org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234) org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352) javax.faces.webapp.FacesServlet.service(FacesServlet.java:107) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
I am also not able to use breakpoints inside the Controller or Entity classes. It just doesn't stop there.
The persistence.xml looks as follows:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="ejbPU" transaction-type="JTA"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/reporting</jta-data-source> <properties> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/> <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> <property name="hibernate.hbm2ddl.auto" value="create"/> </properties> </persistence-unit> </persistence>
And this is my web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <session-config> <session-timeout> 30000 </session-timeout> </session-config> <welcome-file-list> <welcome-file> index.jsp </welcome-file> </welcome-file-list> <context-param> <param-name>com.sun.faces.verifyObjects</param-name> <param-value>false</param-value> </context-param> <context-param> <param-name>com.sun.faces.validateXml</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>client</param-value> </context-param> <listener> <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> </listener> <servlet> <servlet-name>FacesServlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>FacesServlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>FacesServlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> </web-app>
This is the Server log I get:
14:09:20,235 INFO [SchemaExport] schema export complete 14:09:20,255 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception javax.faces.el.EvaluationException: Cannot get value for expression 'Item #{filereaderStatus.firstItem + 1}..#{filereaderStatus.lastItem} of #{filereaderStatus.itemCount}' at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:397) at javax.faces.component.UIOutput.getValue(UIOutput.java:75) at org.apache.myfaces.renderkit.RendererUtils.getStringValue(RendererUtils.java:225) at org.apache.myfaces.renderkit.html.HtmlTextRendererBase.renderOutput(HtmlTextRendererBase.java:65) at org.apache.myfaces.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:53) at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331) at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:349) at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:253) at org.apache.jsp.test.filereaderStatus.List_jsp._jspx_meth_h_outputText_0(List_jsp.java:248) at org.apache.jsp.test.filereaderStatus.List_jsp._jspx_meth_h_form_0(List_jsp.java:190) at org.apache.jsp.test.filereaderStatus.List_jsp._jspx_meth_f_view_0(List_jsp.java:133) at org.apache.jsp.test.filereaderStatus.List_jsp._jspService(List_jsp.java:93) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415) at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) Caused by: javax.persistence.PersistenceException: org.hibernate.HibernateException: The chosen transaction strategy requires access to the JTA TransactionManager at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:217) at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:114) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:37) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:27) at com.mycompany.reporting.web.controls.FilereaderStatusController.<init>(FilereaderStatusController.java:31) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:494) at java.lang.Class.newInstance0(Class.java:350) at java.lang.Class.newInstance(Class.java:303) at org.apache.myfaces.util.ClassUtils.newInstance(ClassUtils.java:274) at org.apache.myfaces.util.ClassUtils.newInstance(ClassUtils.java:265) at org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:49) at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:311) at org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:569) at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124) at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140) at org.apache.commons.el.BinaryOperatorExpression.evaluate(BinaryOperatorExpression.java:154) at org.apache.commons.el.ExpressionString.evaluate(ExpressionString.java:114) at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:378) ... 45 more Caused by: org.hibernate.HibernateException: The chosen transaction strategy requires access to the JTA TransactionManager at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:326) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1213) at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:631) at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:760) at org.hibernate.ejb.Ejb3Configuration.createFactory(Ejb3Configuration.java:151) at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:205) ... 65 more 14:09:20,262 ERROR [[FacesServlet]] Servlet.service() for servlet FacesServlet threw exception javax.faces.FacesException: Cannot get value for expression 'Item #{filereaderStatus.firstItem + 1}..#{filereaderStatus.lastItem} of #{filereaderStatus.itemCount}' at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:421) at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) Caused by: org.apache.jasper.JasperException: Cannot get value for expression 'Item #{filereaderStatus.firstItem + 1}..#{filereaderStatus.lastItem} of #{filereaderStatus.itemCount}' at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415) ... 21 more
And if that maybe helps something, earlier in the log, there are some messages saying:
14:09:19,002 DEBUG [Configuration] resolving reference to class: com.mycompany.reporting.persistence.StatusType 14:09:19,002 DEBUG [Configuration] resolving reference to class: com.mycompany.reporting.persistence.RecurrenceType 14:09:19,108 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,116 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,118 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,120 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,212 DEBUG [Configuration] Preparing to build session factory with filters : {} 14:09:19,212 DEBUG [AnnotationConfiguration] Execute first pass mapping processing 14:09:19,212 DEBUG [AnnotationConfiguration] Process hbm files 14:09:19,213 DEBUG [AnnotationConfiguration] Process annotated classes 14:09:19,213 DEBUG [AnnotationConfiguration] processing manytoone fk mappings 14:09:19,213 DEBUG [Configuration] processing extends queue 14:09:19,213 DEBUG [Configuration] processing collection mappings 14:09:19,213 DEBUG [Configuration] processing native query and ResultSetMapping mappings 14:09:19,213 DEBUG [Configuration] processing association property references 14:09:19,213 DEBUG [Configuration] processing foreign key constraints 14:09:19,213 DEBUG [Configuration] resolving reference to class: com.mycompany.reporting.persistence.RecurrenceType 14:09:19,214 DEBUG [Configuration] resolving reference to class: com.mycompany.reporting.persistence.StatusType 14:09:19,214 DEBUG [Configuration] resolving reference to class: com.mycompany.reporting.persistence.RecurrenceType 14:09:19,214 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,217 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,220 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,221 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,227 INFO [NamingHelper] JNDI InitialContext properties:{} 14:09:19,232 INFO [DatasourceConnectionProvider] Using datasource: java:/reporting 14:09:19,237 INFO [SettingsFactory] RDBMS: PostgreSQL, version: 8.1.3 14:09:19,237 INFO [SettingsFactory] JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 8.1 JDBC3 with SSL (build 404) 14:09:19,238 INFO [Dialect] Using dialect: org.hibernate.dialect.PostgreSQLDialect 14:09:19,240 INFO [TransactionFactoryFactory] Transaction strategy: org.hibernate.ejb.transaction.JoinableCMTTransactionFactory 14:09:19,240 INFO [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) 14:09:19,240 INFO [SettingsFactory] Automatic flush during beforeCompletion(): disabled 14:09:19,240 INFO [SettingsFactory] Automatic session close at end of transaction: disabled 14:09:19,241 INFO [SettingsFactory] JDBC batch size: 15 14:09:19,241 INFO [SettingsFactory] JDBC batch updates for versioned data: disabled 14:09:19,241 INFO [SettingsFactory] Scrollable result sets: enabled 14:09:19,241 DEBUG [SettingsFactory] Wrap result sets: disabled 14:09:19,241 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): disabled 14:09:19,241 INFO [SettingsFactory] Connection release mode: auto 14:09:19,241 INFO [SettingsFactory] Default batch fetch size: 1 14:09:19,241 INFO [SettingsFactory] Generate SQL with comments: disabled 14:09:19,241 INFO [SettingsFactory] Order SQL updates by primary key: disabled 14:09:19,242 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory 14:09:19,242 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory 14:09:19,242 INFO [SettingsFactory] Query language substitutions: {} 14:09:19,242 INFO [SettingsFactory] Second-level cache: enabled 14:09:19,242 INFO [SettingsFactory] Query cache: disabled 14:09:19,243 INFO [SettingsFactory] Cache provider: org.hibernate.cache.EhCacheProvider 14:09:19,289 INFO [SettingsFactory] Optimize cache for minimal puts: disabled 14:09:19,289 INFO [SettingsFactory] Structured second-level cache entries: disabled 14:09:19,289 INFO [SettingsFactory] Statistics: disabled 14:09:19,289 INFO [SettingsFactory] Deleted entity synthetic identifier rollback: disabled 14:09:19,290 INFO [SettingsFactory] Default entity-mode: pojo 14:09:19,322 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,325 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,327 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,329 DEBUG [ClassValidator] ResourceBundle ValidatorMessages not found in Validator classloader. Delegate to org.hibernate.validator.resources.DefaultValidatorMessages 14:09:19,331 INFO [SessionFactoryImpl] building session factory 14:09:19,332 DEBUG [SessionFactoryImpl] Session factory constructed with filter configurations : {} 14:09:19,334 DEBUG [SessionFactoryImpl] instantiating session factory with properties: ...(lots of properties)... 14:09:19,367 DEBUG [CacheManager] Configuring ehcache from classpath. 14:09:19,494 WARN [ConfigurationFactory] No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: jar:file:/usr/local/jboss-4.0.4.GA/server/default/lib/ehcache-1.2.2.jar!/ehcache-failsafe.xml 14:09:19,495 DEBUG [ConfigurationFactory] Configuring ehcache from URL: jar:file:/usr/local/jboss-4.0.4.GA/server/default/lib/ehcache-1.2.2.jar!/ehcache-failsafe.xml 14:09:19,502 DEBUG [ConfigurationFactory] Configuring ehcache from InputStream 14:09:19,554 DEBUG [DiskStoreConfiguration] Disk Store Path: /tmp 14:09:19,597 DEBUG [ConfigurationHelper] No CacheManagerEventListenerFactory class specified. Skipping... 14:09:19,598 DEBUG [ConfigurationHelper] No CachePeerListenerFactoryConfiguration specified. Not configuring a CacheManagerPeerListener. 14:09:19,615 DEBUG [ConfigurationHelper] No CachePeerProviderFactoryConfiguration specified. Not configuring a CacheManagerPeerProvider. 14:09:19,676 DEBUG [ConfigurationHelper] No BootstrapCacheLoaderFactory class specified. Skipping...
Any help is greatly appreciated
/R