You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Andreas Fink <fi...@googlemail.com> on 2012/03/01 08:42:03 UTC

Re: Tapestry and JPA

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-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Tapestry and JPA

Posted by heapifyman <he...@gmail.com>.
Hi Andreas,

thanks again.


2012/3/1 Andreas Fink <fi...@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 <fi...@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-unsubscribe@tapestry.apache.org
> >> For additional commands, e-mail: users-help@tapestry.apache.org
> >>
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: Tapestry and JPA

Posted by Andreas Fink <fi...@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 <fi...@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-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 


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


Re: Tapestry and JPA

Posted by heapifyman <he...@gmail.com>.
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 <fi...@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-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>