Hi Andreas, thanks again.
2012/3/1 Andreas Fink <fink.a...@googlemail.com> > Yes. I am using jetty (7) in development and production. It works > perfectly fine. > I am following, pretty much directly, the setup here: > http://open.bekk.no/embedded-jetty-7-webapp-executable-with-maven/ > During development i start it from a main method / tools menu (eclipse), > in production with yajsw: http://yajsw.sourceforge.net/ > I do not define JNDI with jetty and so simplejndi works without problems. > > Cheers, > Andi. > > > On Mar 1, 2012, at 13:19 , heapifyman wrote: > > > Hi Andreas, > > > > thanks for the hint. Indeed I hadn't defined a DS. I tried your example > now > > and it seems to be working, At least I don't get any exceptions during > > startup anymore. > > I had to tweak your code a little though: > > Context envC = ic.createSubcontext("java:comp/env"); > > Context jdbcC = envC.createSubcontext("jdbc"); > > jdbcC.bind("myDS", ds); > > > > Otherwise, jdbc/myDS wouldn't be found during lookup. > > > > BTW, I'm using Eclipse Jetty Server here. Are you using Jetty as well, by > > any chance? Any experience of using simple-jndi in Jetty? I know, Jetty > can > > be configured to use its own JNDI stuff but the configuration seems to be > > quite complicated so I would go with simple-jndi as well if there are no > > major drawbacks. > > > > Thanks again. > > > > > > > > 2012/3/1 Andreas Fink <fink.a...@googlemail.com> > > > >> 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 > >> > >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >