Howard Lewis Ship wrote:
Please follow the directions on the tapestry-spring home page:
http://tapestry.apache.org/tapestry5/tapestry-spring/
It has changed significantly from 5.0.3 ... and simpler. Spring beans now
look just like Tapestry IoC services, can be autowires into services, etc.
@SpringBean isn't used any more.
It does look better, but breaks the stock Spring setup I was working with.
(Works fine with 5.0.4 and uses Spring 1.2.8.)
I followed the tapestry-spring docs but got an abstract bean exception.
The IOC makes it too time-consuming to dig into this right now, but the
bean definitions, injection and top of the exception trace follow.
Cheers,
Nick.
applicationContext.xml:
...
<bean id="baseTransactionProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
...
<bean id="accountService" parent="baseTransactionProxy">
...
Start.java:
...
@Inject
private AccountService _accountService;
...
Exception trace:
20:15:10.453 ERROR! [main]
org.apache.tapestry.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:64)
>14> Construction of service ServletApplicationInitializer failed: Unable to
instantiate class org.apache.tapestry.services.TapestryModule as a module builder:
Error creating bean with name 'baseTransactionProxy': Bean definition is abstract
java.lang.RuntimeException: Unable to instantiate class
org.apache.tapestry.services.TapestryModule as a module builder: Error creating
bean with name 'baseTransactionProxy': Bean definition is abstract
at
org.apache.tapestry.ioc.internal.ModuleImpl.instantiateModuleBuilder(ModuleImpl.java:348)
at
org.apache.tapestry.ioc.internal.ModuleImpl.getModuleBuilder(ModuleImpl.java:273)
at
org.apache.tapestry.ioc.internal.ServiceResourcesImpl.getModuleBuilder(ServiceResourcesImpl.java:106)
at
org.apache.tapestry.ioc.internal.ServiceBuilderMethodInvoker.createObject(ServiceBuilderMethodInvoker.java:60)
at
org.apache.tapestry.ioc.internal.SingletonServiceLifecycle.createService(SingletonServiceLifecycle.java:31)
at
org.apache.tapestry.ioc.internal.LifecycleWrappedServiceCreator.createObject(LifecycleWrappedServiceCreator.java:49)
at
org.apache.tapestry.ioc.internal.InterceptorStackBuilder.createObject(InterceptorStackBuilder.java:54)
at
org.apache.tapestry.ioc.internal.RecursiveServiceCreationCheckWrapper.createObject(RecursiveServiceCreationCheckWrapper.java:60)
at
org.apache.tapestry.ioc.internal.services.JustInTimeObjectCreator.createObject(JustInTimeObjectCreator.java:61)
at
$ServletApplicationInitializer_11299bf9751._delegate($ServletApplicationInitializer_11299bf9751.java)
at
$ServletApplicationInitializer_11299bf9751.initializeApplication($ServletApplicationInitializer_11299bf9751.java)
at org.apache.tapestry.TapestryFilter.init(TapestryFilter.java:85)
at org.mortbay.jetty.servlet.FilterHolder.start(FilterHolder.java:71)
at
org.mortbay.jetty.servlet.WebApplicationHandler.initializeServlets(WebApplicationHandler.java:310)
at
org.mortbay.jetty.servlet.WebApplicationContext.doStart(WebApplicationContext.java:509)
at org.mortbay.util.Container.start(Container.java:72)
at org.mortbay.http.HttpServer.doStart(HttpServer.java:708)
at org.mortbay.util.Container.start(Container.java:72)
at com.iw.plugins.jettyrunner.PluginRunner.launch(PluginRunner.java:282)
at com.iw.plugins.jettyrunner.PluginRunner.launch(PluginRunner.java:104)
at com.iw.plugins.jettyrunner.PluginRunner.main(PluginRunner.java:75)
Caused by: org.springframework.beans.factory.BeanIsAbstractException: Error
creating bean with name 'baseTransactionProxy': Bean definition is abstract
at
org.springframework.beans.factory.support.AbstractBeanFactory.checkMergedBeanDefinition(AbstractBeanFactory.java:767)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:220)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:537)
at
org.apache.tapestry.internal.spring.SpringModuleDef$1.getBean(SpringModuleDef.java:41)
at
org.apache.tapestry.internal.spring.SpringModuleDef$1.getServiceInterface(SpringModuleDef.java:62)
at
org.apache.tapestry.ioc.internal.ModuleImpl.findServiceIdsForInterface(ModuleImpl.java:148)
at
org.apache.tapestry.ioc.internal.RegistryImpl.findServiceIdsForInterface(RegistryImpl.java:498)
at
org.apache.tapestry.ioc.internal.RegistryImpl.getService(RegistryImpl.java:467)
at
org.apache.tapestry.ioc.internal.ObjectLocatorImpl.getService(ObjectLocatorImpl.java:45)
at
org.apache.tapestry.ioc.services.TapestryIOCModule$2.provide(TapestryIOCModule.java:132)
at $ObjectProvider_11299bf975a.provide($ObjectProvider_11299bf975a.java)
at $ObjectProvider_11299bf9754.provide($ObjectProvider_11299bf9754.java)
at
org.apache.tapestry.ioc.internal.RegistryImpl.getObject(RegistryImpl.java:575)
at
org.apache.tapestry.ioc.internal.ObjectLocatorImpl.getObject(ObjectLocatorImpl.java:50)
at
org.apache.tapestry.ioc.internal.util.InternalUtils.calculateParameterValue(InternalUtils.java:217)
at
org.apache.tapestry.ioc.internal.util.InternalUtils.calculateParameters(InternalUtils.java:248)
at
org.apache.tapestry.ioc.internal.ModuleImpl.instantiateModuleBuilder(ModuleImpl.java:327)
... 20 more
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]