Hi.

Did you specify a jndi datasource? T5-jpa relies on it.
Because i do not enable jndi in my container, i do it directly in my 
PersistenceModule with simplejndi like this:

public class PersistenceModule {
        
        /**
         * Eeagerly loaded for {@link TapestryPersistenceUnitInfo} to find the 
{@link DataSource} via JNDI.
         * @param config
         * @return
         * @throws NamingException
         */
        @EagerLoad
        public DataSource buildDataSource(final Map<String, String> config,
                @Symbol("db.jdbc.driver") final String jdbcDriver,
                @Symbol("db.jdbc.url") final String jdbcUrl,
                @Symbol("db.username") final String user,
                @Symbol("db.password") final String password,
                @Symbol("db.bonecp.logging") final boolean loggingEnabled
                        ) throws NamingException {
                
                final BoneCPDataSource ds = new BoneCPDataSource();
                
                ds.setDriverClass(jdbcDriver);
                ds.setJdbcUrl(jdbcUrl);
                ds.setUsername(user);
                ds.setPassword(password);
                ds.setLogStatementsEnabled(loggingEnabled);
//              ds.setConnectionTestStatement("select count(*) from product");

                final Context ic = new InitialContext();
                try {
                        ic.createSubcontext("java:comp/env");
                        ic.bind("jdbc/myDs", ds);
                } catch (final NamingException ne) {
                        throw new RuntimeException(ne.getExplanation(), ne);
                }
                
                return ds;
        }

        @EagerLoad
        public InitialContext buildInitialContext() throws NamingException {
                System.setProperty(Context.INITIAL_CONTEXT_FACTORY, 
"org.osjava.sj.memory.MemoryContextFactory");
                System.setProperty("org.osjava.sj.jndi.shared", "true");
                
                return new InitialContext();
        }

        ...

}



On Feb 27, 2012, at 14:08 , heapifyman wrote:

> Hello,
> 
> I have problems configuring JPA for Tapestry following the documentation
> here: http://tapestry.apache.org/integrating-with-jpa.html.
> Are there examples or tutorials I could take a look at?
> 
> My persistence.xml looks like this:
> <?xml version="1.0" encoding="UTF-8"?>
> <persistence xmlns="http://java.sun.com/xml/ns/persistence";
> version="2.0">
> <persistence-unit name="jpaUnit" transaction-type="RESOURCE_LOCAL">
> <provider>org.hibernate.ejb.HibernatePersistence</provider>
> <properties>
> <property name="javax.persistence.jdbc.driver" value="org.h2.Driver" />
> <property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:test" />
> <property name="javax.persistence.jdbc.username" value="sa" />
> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"
> />
> <property name="hibernate.hbm2ddl.auto" value="create-drop" />
> <property name="hibernate.show_sql" value="true" />
> <property name="hibernate.format_sql" value="true" />
> </properties>
> </persistence-unit>
> </persistence>
> 
> 
> In my pom.xml I added (using hibernate as JPA implementation):
>                <!--  Tapestry JPA -->
> <dependency>
> <groupId>org.apache.tapestry</groupId>
> <artifactId>tapestry-jpa</artifactId>
> <version>${tapestry-release-version}</version>
> </dependency>
> <!--  Tapestry bean validation -->
> <dependency>
> <groupId>org.apache.tapestry</groupId>
> <artifactId>tapestry-beanvalidator</artifactId>
> <version>${tapestry-release-version}</version>
> </dependency>
> <!-- Hibernate stuff -->
> <dependency>
> <groupId>org.hibernate</groupId>
> <artifactId>hibernate-entitymanager</artifactId>
> <version>4.1.0.Final</version>
> </dependency>
> <dependency>
> <groupId>org.hibernate</groupId>
> <artifactId>hibernate-validator</artifactId>
> <version>4.2.0.Final</version>
> </dependency>
> 
> <!-- H2 Database dependencies -->
> <dependency>
> <groupId>com.h2database</groupId>
> <artifactId>h2</artifactId>
> <version>1.3.164</version>
> </dependency>
> 
> If I start Jetty (using run-jetty-run in Eclipse) with above configuration
> I get the following exception:
> [ERROR] hbm2ddl.SchemaExport HHH000231: Schema export unsuccessful
> java.lang.UnsupportedOperationException: The application must supply JDBC
> connections
> at
> org.hibernate.service.jdbc.connections.internal.UserSuppliedConnectionProviderImpl.getConnection(UserSuppliedConnectionProviderImpl.java:62)
> at
> org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51)
> at
> org.hibernate.tool.hbm2ddl.DatabaseExporter.<init>(DatabaseExporter.java:52)
> at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java:368)
> at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:305)
> at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java:294)
> at
> org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:475)
> at
> org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1740)
> at
> org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:88)
> at
> org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:904)
> at
> org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:889)
> at
> org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
> at
> org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl.createEntityManagerFactory(EntityManagerSourceImpl.java:204)
> at
> org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl.getEntityManagerFactory(EntityManagerSourceImpl.java:185)
> at
> org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl.create(EntityManagerSourceImpl.java:229)
> at $EntityManagerSource_1e5c8909313b4.create(Unknown Source)
> at
> org.apache.tapestry5.internal.jpa.EntityManagerManagerImpl.getOrCreateEntityManager(EntityManagerManagerImpl.java:78)
> at
> org.apache.tapestry5.internal.jpa.EntityManagerManagerImpl.createAllEntityManagers(EntityManagerManagerImpl.java:68)
> at
> org.apache.tapestry5.internal.jpa.EntityManagerManagerImpl.getEntityManagers(EntityManagerManagerImpl.java:59)
> at $EntityManagerManager_1e5c8909313b3.getEntityManagers(Unknown Source)
> at $EntityManagerManager_1e5c8909313b2.getEntityManagers(Unknown Source)
> at org.apache.tapestry5.jpa.JpaModule.startupEarly(JpaModule.java:186)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:120)
> at
> org.apache.tapestry5.ioc.internal.ContributionDefImpl.contribute(ContributionDefImpl.java:80)
> at
> org.apache.tapestry5.ioc.internal.RegistryImpl$9.run(RegistryImpl.java:630)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
> at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
> at
> org.apache.tapestry5.ioc.internal.RegistryImpl.addToOrderedConfiguration(RegistryImpl.java:626)
> at
> org.apache.tapestry5.ioc.internal.RegistryImpl.getOrderedConfiguration(RegistryImpl.java:480)
> at
> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:110)
> at
> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl$2.invoke(ServiceResourcesImpl.java:107)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> at
> org.apache.tapestry5.ioc.internal.ServiceResourcesImpl.getOrderedConfiguration(ServiceResourcesImpl.java:105)
> at
> org.apache.tapestry5.ioc.internal.AbstractServiceCreator.getOrderedConfiguration(AbstractServiceCreator.java:123)
> at
> org.apache.tapestry5.ioc.internal.AbstractServiceCreator.access$200(AbstractServiceCreator.java:35)
> at
> org.apache.tapestry5.ioc.internal.AbstractServiceCreator$1.findResource(AbstractServiceCreator.java:103)
> at
> org.apache.tapestry5.ioc.internal.util.DelegatingInjectionResources.findResource(DelegatingInjectionResources.java:38)
> at
> org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateInjection(InternalUtils.java:231)
> at
> org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:50)
> at
> org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:289)
> at
> org.apache.tapestry5.ioc.internal.util.InternalUtils$4.invoke(InternalUtils.java:286)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> at
> org.apache.tapestry5.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:293)
> at
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1488)
> at
> org.apache.tapestry5.ioc.internal.util.InternalUtils$23.invoke(InternalUtils.java:1483)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> at
> org.apache.tapestry5.ioc.internal.util.InternalUtils.createConstructorConstructionPlan(InternalUtils.java:1480)
> at
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.getPlan(ConstructorServiceCreator.java:52)
> at
> org.apache.tapestry5.ioc.internal.ConstructorServiceCreator.createObject(ConstructorServiceCreator.java:61)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> at
> org.apache.tapestry5.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:29)
> at
> org.apache.tapestry5.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:46)
> at
> org.apache.tapestry5.ioc.internal.AdvisorStackBuilder.createObject(AdvisorStackBuilder.java:63)
> at
> org.apache.tapestry5.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
> at
> org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator$1.invoke(OperationTrackingObjectCreator.java:45)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
> at
> org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
> at
> org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1121)
> at
> org.apache.tapestry5.ioc.internal.OperationTrackingObjectCreator.createObject(OperationTrackingObjectCreator.java:49)
> at
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:66)
> at
> org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54)
> at $Runnable_1e5c8909313b1.delegate(Unknown Source)
> at $Runnable_1e5c8909313b1.run(Unknown Source)
> at
> org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:322)
> at
> org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:80)
> at org.apache.tapestry5.TapestryFilter.init(TapestryFilter.java:118)
> at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
> at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
> at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
> at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> at org.mortbay.jetty.Server.doStart(Server.java:224)
> at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at runjettyrun.Bootstrap.main(Bootstrap.java:97)
> 
> Thanks in advance for any help.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to