java.lang.NoClassDefFoundError: javax/transaction/TransactionManager

Spring JIRA | Heiko Seeberger | 9 years ago
  1. 0

    I am trying to set up an OSGi bundle with Spring Hibernate support. All Spring OSGi bundles are installed into my Eclipse SDK and I have packaged Hibernat as OSGi bundle. When I am running my test cases I get the below error. Is there some Import-Package or DynamicImport-Package missing? SEVERE: Unable to create application context for [de.metafinanz.hermes.domain] java.lang.NoClassDefFoundError: javax/transaction/TransactionManager at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.getDeclaredMethods(Unknown Source) at java.beans.Introspector$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source) at java.beans.Introspector.getTargetMethodInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:244) at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:143) at org.springframework.beans.BeanWrapperImpl.setIntrospectionClass(BeanWrapperImpl.java:236) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:194) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:177) at org.springframework.beans.BeanWrapperImpl.<init>(BeanWrapperImpl.java:130) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:760) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:724) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getSingletonFactoryBeanForTypeCheck(AbstractAutowireCapableBeanFactory.java:610) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:551) at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:441) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:173) at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:174) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext$DependencyListener.findServiceDependencies(ServiceDependentOsgiBundleXmlApplicationContext.java:149) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext$DependencyListener.access$100(ServiceDependentOsgiBundleXmlApplicationContext.java:136) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext.onRefresh(ServiceDependentOsgiBundleXmlApplicationContext.java:90) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346) at org.springframework.osgi.context.support.AbstractRefreshableOsgiBundleApplicationContext.refresh(AbstractRefreshableOsgiBundleApplicationContext.java:170) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext.refresh(ServiceDependentOsgiBundleXmlApplicationContext.java:76) at org.springframework.osgi.extender.support.ApplicationContextCreator.run(ApplicationContextCreator.java:155) at java.lang.Thread.run(Unknown Source)

    Spring JIRA | 9 years ago | Heiko Seeberger
    java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
  2. 0

    I am trying to set up an OSGi bundle with Spring Hibernate support. All Spring OSGi bundles are installed into my Eclipse SDK and I have packaged Hibernat as OSGi bundle. When I am running my test cases I get the below error. Is there some Import-Package or DynamicImport-Package missing? SEVERE: Unable to create application context for [de.metafinanz.hermes.domain] java.lang.NoClassDefFoundError: javax/transaction/TransactionManager at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.getDeclaredMethods(Unknown Source) at java.beans.Introspector$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source) at java.beans.Introspector.getTargetMethodInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:244) at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:143) at org.springframework.beans.BeanWrapperImpl.setIntrospectionClass(BeanWrapperImpl.java:236) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:194) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:177) at org.springframework.beans.BeanWrapperImpl.<init>(BeanWrapperImpl.java:130) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:760) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:724) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getSingletonFactoryBeanForTypeCheck(AbstractAutowireCapableBeanFactory.java:610) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:551) at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:441) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:173) at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:174) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext$DependencyListener.findServiceDependencies(ServiceDependentOsgiBundleXmlApplicationContext.java:149) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext$DependencyListener.access$100(ServiceDependentOsgiBundleXmlApplicationContext.java:136) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext.onRefresh(ServiceDependentOsgiBundleXmlApplicationContext.java:90) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346) at org.springframework.osgi.context.support.AbstractRefreshableOsgiBundleApplicationContext.refresh(AbstractRefreshableOsgiBundleApplicationContext.java:170) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext.refresh(ServiceDependentOsgiBundleXmlApplicationContext.java:76) at org.springframework.osgi.extender.support.ApplicationContextCreator.run(ApplicationContextCreator.java:155) at java.lang.Thread.run(Unknown Source)

    Spring JIRA | 9 years ago | Heiko Seeberger
    java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
  3. 0

    I am using org.springframework.orm.ibatis.SqlMapClientFactoryBean. While this class was instanciated, I got the exceptiong below. The reason is that the bungle manifest of org.springframework.osgi.spring-ibatis is missing the import import com.ibatis.sqlmap.engine.transaction java.lang.NoClassDefFoundError: com/ibatis/sqlmap/engine/transaction/TransactionConfig at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.getDeclaredMethods(Unknown Source) at java.beans.Introspector$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source) at java.beans.Introspector.getTargetMethodInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:244) at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:143) at org.springframework.beans.BeanWrapperImpl.setIntrospectionClass(BeanWrapperImpl.java:236) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:194) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:177) at org.springframework.beans.BeanWrapperImpl.<init>(BeanWrapperImpl.java:130) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:760) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:724) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getSingletonFactoryBeanForTypeCheck(AbstractAutowireCapableBeanFactory.java:610) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:551) at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:441) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:173) at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:174) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext$DependencyListener.findServiceDependencies(ServiceDependentOsgiBundleXmlApplicationContext.java:149) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext$DependencyListener.access$100(ServiceDependentOsgiBundleXmlApplicationContext.java:136) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext.onRefresh(ServiceDependentOsgiBundleXmlApplicationContext.java:90) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346) at org.springframework.osgi.context.support.AbstractRefreshableOsgiBundleApplicationContext.refresh(AbstractRefreshableOsgiBundleApplicationContext.java:170) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext.refresh(ServiceDependentOsgiBundleXmlApplicationContext.java:76) at org.springframework.osgi.extender.support.ApplicationContextCreator.run(ApplicationContextCreator.java:155) at java.lang.Thread.run(Unknown Source) 18.05.2007 11:55:17 org.springframework.osgi.extender.support.ApplicationContextCreator run INFO: Calling code: java.lang.Throwable at org.springframework.osgi.extender.support.ApplicationContextCreator.<init>(ApplicationContextCreator.java:95) at org.springframework.osgi.extender.ContextLoaderListener.maybeCreateApplicationContextFor(ContextLoaderListener.java:320) at org.springframework.osgi.extender.ContextLoaderListener.bundleChanged(ContextLoaderListener.java:289) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:1210) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:195) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:141) at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1558) at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1509) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:355) at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:350) at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1118) at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:634) at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:508) at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:282) at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:468) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:195) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:297)

    Spring JIRA | 10 years ago | Bernd Kolb
    java.lang.NoClassDefFoundError: com/ibatis/sqlmap/engine/transaction/TransactionConfig
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    I am using org.springframework.orm.ibatis.SqlMapClientFactoryBean. While this class was instanciated, I got the exceptiong below. The reason is that the bungle manifest of org.springframework.osgi.spring-ibatis is missing the import import com.ibatis.sqlmap.engine.transaction java.lang.NoClassDefFoundError: com/ibatis/sqlmap/engine/transaction/TransactionConfig at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.getDeclaredMethods(Unknown Source) at java.beans.Introspector$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Introspector.getPublicDeclaredMethods(Unknown Source) at java.beans.Introspector.getTargetMethodInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at java.beans.Introspector.getBeanInfo(Unknown Source) at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:244) at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:143) at org.springframework.beans.BeanWrapperImpl.setIntrospectionClass(BeanWrapperImpl.java:236) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:194) at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:177) at org.springframework.beans.BeanWrapperImpl.<init>(BeanWrapperImpl.java:130) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:760) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:724) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getSingletonFactoryBeanForTypeCheck(AbstractAutowireCapableBeanFactory.java:610) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:551) at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:441) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:173) at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:174) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext$DependencyListener.findServiceDependencies(ServiceDependentOsgiBundleXmlApplicationContext.java:149) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext$DependencyListener.access$100(ServiceDependentOsgiBundleXmlApplicationContext.java:136) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext.onRefresh(ServiceDependentOsgiBundleXmlApplicationContext.java:90) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346) at org.springframework.osgi.context.support.AbstractRefreshableOsgiBundleApplicationContext.refresh(AbstractRefreshableOsgiBundleApplicationContext.java:170) at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext.refresh(ServiceDependentOsgiBundleXmlApplicationContext.java:76) at org.springframework.osgi.extender.support.ApplicationContextCreator.run(ApplicationContextCreator.java:155) at java.lang.Thread.run(Unknown Source) 18.05.2007 11:55:17 org.springframework.osgi.extender.support.ApplicationContextCreator run INFO: Calling code: java.lang.Throwable at org.springframework.osgi.extender.support.ApplicationContextCreator.<init>(ApplicationContextCreator.java:95) at org.springframework.osgi.extender.ContextLoaderListener.maybeCreateApplicationContextFor(ContextLoaderListener.java:320) at org.springframework.osgi.extender.ContextLoaderListener.bundleChanged(ContextLoaderListener.java:289) at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:1210) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:195) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:141) at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1558) at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1509) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:355) at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:350) at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1118) at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:634) at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:508) at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:282) at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:468) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:195) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:297)

    Spring JIRA | 10 years ago | Bernd Kolb
    java.lang.NoClassDefFoundError: com/ibatis/sqlmap/engine/transaction/TransactionConfig
  6. 0

    Duvida / Erro

    Google Groups | 9 years ago | rlether
    java.lang.NoClassDefFoundError: javax/transaction/TransactionManager

    5 unregistered visitors
    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.NoClassDefFoundError

      javax/transaction/TransactionManager

      at java.lang.Class.getDeclaredMethods0()
    2. Java RT
      Introspector.getBeanInfo
      1. java.lang.Class.getDeclaredMethods0(Native Method)
      2. java.lang.Class.privateGetDeclaredMethods(Unknown Source)
      3. java.lang.Class.getDeclaredMethods(Unknown Source)
      4. java.beans.Introspector$1.run(Unknown Source)
      5. java.security.AccessController.doPrivileged(Native Method)
      6. java.beans.Introspector.getPublicDeclaredMethods(Unknown Source)
      7. java.beans.Introspector.getTargetMethodInfo(Unknown Source)
      8. java.beans.Introspector.getBeanInfo(Unknown Source)
      9. java.beans.Introspector.getBeanInfo(Unknown Source)
      9 frames
    3. Spring Beans
      BeanFactoryUtils.beanNamesForTypeIncludingAncestors
      1. org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:244)
      2. org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:143)
      3. org.springframework.beans.BeanWrapperImpl.setIntrospectionClass(BeanWrapperImpl.java:236)
      4. org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:194)
      5. org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:177)
      6. org.springframework.beans.BeanWrapperImpl.<init>(BeanWrapperImpl.java:130)
      7. org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:760)
      8. org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:724)
      9. org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getSingletonFactoryBeanForTypeCheck(AbstractAutowireCapableBeanFactory.java:610)
      10. org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:551)
      11. org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:441)
      12. org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:173)
      13. org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:174)
      13 frames
    4. org.springframework.osgi
      ServiceDependentOsgiBundleXmlApplicationContext.onRefresh
      1. org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext$DependencyListener.findServiceDependencies(ServiceDependentOsgiBundleXmlApplicationContext.java:149)
      2. org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext$DependencyListener.access$100(ServiceDependentOsgiBundleXmlApplicationContext.java:136)
      3. org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext.onRefresh(ServiceDependentOsgiBundleXmlApplicationContext.java:90)
      3 frames
    5. Spring Context
      AbstractApplicationContext.refresh
      1. org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:346)
      1 frame
    6. Spring OSGi Core
      AbstractRefreshableOsgiBundleApplicationContext.refresh
      1. org.springframework.osgi.context.support.AbstractRefreshableOsgiBundleApplicationContext.refresh(AbstractRefreshableOsgiBundleApplicationContext.java:170)
      1 frame
    7. org.springframework.osgi
      ApplicationContextCreator.run
      1. org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext.refresh(ServiceDependentOsgiBundleXmlApplicationContext.java:76)
      2. org.springframework.osgi.extender.support.ApplicationContextCreator.run(ApplicationContextCreator.java:155)
      2 frames
    8. Java RT
      Thread.run
      1. java.lang.Thread.run(Unknown Source)
      1 frame