The message "No PersistenceProvider implementation available in the runtime environment." means that no JPA implementor like EclipseLink is not available on the classpath.
On Fri, Dec 16, 2011 at 10:50 AM, Bo Gao <eli...@gmail.com> wrote: > Hi, > How can I test my services using TestNG? > > I use PageTester to start tapestry and call getService to get my service > instance. > This works when I run in a main function. > > But I write some test class use TestNG, when I call mvn test in shell. > I get the following Exceptions. > > "No PersistenceProvider implementation available in the runtime > environment." > > > -- > Dec 16, 2011 5:29:46 PM > org.apache.tapestry5.ioc.internal.OperationTrackerImpl log > SEVERE: Error invoking service contribution method > org.apache.tapestry5.jpa.JpaModule.startupEarly(EntityManagerManager, > boolean): No PersistenceProvider implementation available in the runtime > environment. > Dec 16, 2011 5:29:46 PM > org.apache.tapestry5.ioc.internal.OperationTrackerImpl log > SEVERE: Operations trace: > Dec 16, 2011 5:29:46 PM > org.apache.tapestry5.ioc.internal.OperationTrackerImpl log > SEVERE: [ 1] Realizing service RegistryStartup > Dec 16, 2011 5:29:46 PM > org.apache.tapestry5.ioc.internal.OperationTrackerImpl log > SEVERE: [ 2] Instantiating service RegistryStartup implementation via > org.apache.tapestry5.ioc.internal.services.RegistryStartup(Logger, List) > (at RegistryStartup.java:36) via > org.apache.tapestry5.ioc.services.TapestryIOCModule.bind(ServiceBinder) (at > TapestryIOCModule.java:49) > Dec 16, 2011 5:29:46 PM > org.apache.tapestry5.ioc.internal.OperationTrackerImpl log > SEVERE: [ 3] Creating plan to instantiate > org.apache.tapestry5.ioc.internal.services.RegistryStartup via public > org.apache.tapestry5.ioc.internal.services.RegistryStartup(org.slf4j.Logger,java.util.List) > Dec 16, 2011 5:29:46 PM > org.apache.tapestry5.ioc.internal.OperationTrackerImpl log > SEVERE: [ 4] Determining injection value for parameter #2 (java.util.List) > Dec 16, 2011 5:29:46 PM > org.apache.tapestry5.ioc.internal.OperationTrackerImpl log > SEVERE: [ 5] Collecting ordered configuration for service RegistryStartup > Dec 16, 2011 5:29:46 PM > org.apache.tapestry5.ioc.internal.OperationTrackerImpl log > SEVERE: [ 6] Invoking > org.apache.tapestry5.jpa.JpaModule.startupEarly(EntityManagerManager, > boolean) (at JpaModule.java:183) > Dec 16, 2011 5:29:46 PM > org.apache.tapestry5.ioc.internal.RecursiveServiceCreationCheckWrapper > createObject > SEVERE: Construction of service RegistryStartup failed: Error invoking > service contribution method > org.apache.tapestry5.jpa.JpaModule.startupEarly(EntityManagerManager, > boolean): No PersistenceProvider implementation available in the runtime > environment. > org.apache.tapestry5.ioc.internal.OperationException: Error invoking > service contribution method > org.apache.tapestry5.jpa.JpaModule.startupEarly(EntityManagerManager, > boolean): No PersistenceProvider implementation available in the runtime > environment. > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88) > 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:219) > at > org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:49) > at > org.apache.tapestry5.ioc.internal.util.InternalUtils$2.invoke(InternalUtils.java:260) > 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:264) > at > org.apache.tapestry5.ioc.internal.util.InternalUtils$21.invoke(InternalUtils.java:1459) > at > org.apache.tapestry5.ioc.internal.util.InternalUtils$21.invoke(InternalUtils.java:1454) > 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:1451) > 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_125fe4414e8b18bb.delegate(Unknown Source) > at $Runnable_125fe4414e8b18bb.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.test.PageTester.<init>(PageTester.java:118) > at > com.formos.tapestry.testify.core.TapestryTester.<init>(TapestryTester.java:34) > at > com.formos.tapestry.testify.core.TapestryTester.<init>(TapestryTester.java:44) > at > org.iminer.test.AbstractIminerTest.<clinit>(AbstractIminerTest.java:15) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at > org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:28) > at > org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:372) > at > org.testng.internal.ClassHelper.createInstance(ClassHelper.java:284) > at > org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:109) > at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:181) > at > org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:120) > at org.testng.TestRunner.initMethods(TestRunner.java:402) > at org.testng.TestRunner.init(TestRunner.java:228) > at org.testng.TestRunner.init(TestRunner.java:198) > at org.testng.TestRunner.<init>(TestRunner.java:147) > at > org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:525) > at org.testng.SuiteRunner.init(SuiteRunner.java:156) > at org.testng.SuiteRunner.<init>(SuiteRunner.java:110) > at org.testng.TestNG.createSuiteRunner(TestNG.java:1235) > at org.testng.TestNG.createSuiteRunners(TestNG.java:1222) > at org.testng.TestNG.runSuitesLocally(TestNG.java:1074) > at org.testng.TestNG.run(TestNG.java:999) > at > org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:60) > at > org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:153) > at > org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99) > at > org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111) > 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.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) > at $Proxy0.invoke(Unknown Source) > at > org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) > at > org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) > at > org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) > Caused by: java.lang.RuntimeException: Error invoking service contribution > method > org.apache.tapestry5.jpa.JpaModule.startupEarly(EntityManagerManager, > boolean): No PersistenceProvider implementation available in the runtime > environment. > at > org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:130) > 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) > ... 88 more > Caused by: java.lang.IllegalStateException: No PersistenceProvider > implementation available in the runtime environment. > at > org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl.getPersistenceProvider(EntityManagerSourceImpl.java:221) > at > org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl.createEntityManagerFactory(EntityManagerSourceImpl.java:195) > at > org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl.getEntityManagerFactory(EntityManagerSourceImpl.java:185) > at > org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl.create(EntityManagerSourceImpl.java:229) > at $EntityManagerSource_125fe4414e8b18be.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_125fe4414e8b18bd.getEntityManagers(Unknown > Source) > at $EntityManagerManager_125fe4414e8b18bc.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) > ... 93 more > java.lang.reflect.UndeclaredThrowableException > at $Proxy0.invoke(Unknown Source) > at > org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) > at > org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) > at > org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) > Caused by: java.lang.reflect.InvocationTargetException > 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.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) > ... 4 more > Caused by: org.testng.TestNGException: > An error occurred while instantiating class > org.iminer.test.user.service.TestUserService: null > at > org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:383) > at > org.testng.internal.ClassHelper.createInstance(ClassHelper.java:284) > at > org.testng.internal.ClassImpl.getDefaultInstance(ClassImpl.java:109) > at org.testng.internal.ClassImpl.getInstances(ClassImpl.java:181) > at > org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:120) > at org.testng.TestRunner.initMethods(TestRunner.java:402) > at org.testng.TestRunner.init(TestRunner.java:228) > at org.testng.TestRunner.init(TestRunner.java:198) > at org.testng.TestRunner.<init>(TestRunner.java:147) > at > org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:525) > at org.testng.SuiteRunner.init(SuiteRunner.java:156) > at org.testng.SuiteRunner.<init>(SuiteRunner.java:110) > at org.testng.TestNG.createSuiteRunner(TestNG.java:1235) > at org.testng.TestNG.createSuiteRunners(TestNG.java:1222) > at org.testng.TestNG.runSuitesLocally(TestNG.java:1074) > at org.testng.TestNG.run(TestNG.java:999) > at > org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:60) > at > org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:153) > at > org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:99) > at > org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111) > ... 9 more > Caused by: java.lang.ExceptionInInitializerError > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at > org.testng.internal.ObjectFactoryImpl.newInstance(ObjectFactoryImpl.java:28) > at > org.testng.internal.ClassHelper.createInstance1(ClassHelper.java:372) > ... 28 more > Caused by: java.lang.RuntimeException: Exception constructing service > 'RegistryStartup': Error invoking service contribution method > org.apache.tapestry5.jpa.JpaModule.startupEarly(EntityManagerManager, > boolean): No PersistenceProvider implementation available in the runtime > environment. > at > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.obtainObjectFromCreator(JustInTimeObjectCreator.java:75) > at > org.apache.tapestry5.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:54) > at $Runnable_125fe4414e8b18bb.delegate(Unknown Source) > at $Runnable_125fe4414e8b18bb.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.test.PageTester.<init>(PageTester.java:118) > at > com.formos.tapestry.testify.core.TapestryTester.<init>(TapestryTester.java:34) > at > com.formos.tapestry.testify.core.TapestryTester.<init>(TapestryTester.java:44) > at > org.iminer.test.AbstractIminerTest.<clinit>(AbstractIminerTest.java:15) > ... 34 more > Caused by: org.apache.tapestry5.ioc.internal.OperationException: Error > invoking service contribution method > org.apache.tapestry5.jpa.JpaModule.startupEarly(EntityManagerManager, > boolean): No PersistenceProvider implementation available in the runtime > environment. > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88) > 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:219) > at > org.apache.tapestry5.ioc.internal.util.InternalUtils.access$000(InternalUtils.java:49) > at > org.apache.tapestry5.ioc.internal.util.InternalUtils$2.invoke(InternalUtils.java:260) > 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:264) > at > org.apache.tapestry5.ioc.internal.util.InternalUtils$21.invoke(InternalUtils.java:1459) > at > org.apache.tapestry5.ioc.internal.util.InternalUtils$21.invoke(InternalUtils.java:1454) > 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:1451) > 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) > ... 43 more > Caused by: java.lang.RuntimeException: Error invoking service contribution > method > org.apache.tapestry5.jpa.JpaModule.startupEarly(EntityManagerManager, > boolean): No PersistenceProvider implementation available in the runtime > environment. > at > org.apache.tapestry5.ioc.internal.ContributionDefImpl.invokeMethod(ContributionDefImpl.java:130) > 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) > ... 88 more > Caused by: java.lang.IllegalStateException: No PersistenceProvider > implementation available in the runtime environment. > at > org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl.getPersistenceProvider(EntityManagerSourceImpl.java:221) > at > org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl.createEntityManagerFactory(EntityManagerSourceImpl.java:195) > at > org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl.getEntityManagerFactory(EntityManagerSourceImpl.java:185) > at > org.apache.tapestry5.internal.jpa.EntityManagerSourceImpl.create(EntityManagerSourceImpl.java:229) > at $EntityManagerSource_125fe4414e8b18be.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_125fe4414e8b18bd.getEntityManagers(Unknown > Source) > at $EntityManagerManager_125fe4414e8b18bc.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) > ... 93 more > > -- > Bo Gao > eli...@gmail.com > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > -- Best regards, Igor Drobiazko http://tapestry5.de http://twitter.com/drobiazko