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]

Reply via email to