Looks like we need to filter out abstract beans, which may be a problem
because of the Spring APIs.

On 5/17/07, Nick Westgate <[EMAIL PROTECTED]> wrote:

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]




--
Howard M. Lewis Ship
TWD Consulting, Inc.
Independent J2EE / Open-Source Java Consultant
Creator and PMC Chair, Apache Tapestry
Creator, Apache HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com

Reply via email to