Eclipselink + Spring

Caros bom dia,

sou novo no spring e estou tentando criar um projeto para a faculdade usando o eclipselink e spring.
Porém estou com algumas dificuldades para encontrar material na internet, também o meu inglês não ajuda muito.
Acredito que meu erro esta no aplicationcontext, não tenho certeza que ele esta achando o meu persistence.xml e ta dando erro naquele datasource,
bom se vcs puderem dar uma olhada, obrigado.

Meu erro.[code]
Jan 11, 2013 9:44:21 AM org.apache.catalina.core.AprLifecycleListener init
Informações: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Arquivos de programas\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Arquivos de programas/Java/jre7/bin/client;C:/Arquivos de programas/Java/jre7/bin;C:/Arquivos de programas/Java/jre7/lib/i386;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Arquivos de programas\SSH Communications Security\SSH Secure Shell;C:\Arquivos de programas\eclipse-jee-indigo-SR2-win32\eclipse;;.
Jan 11, 2013 9:44:21 AM org.apache.coyote.AbstractProtocol init
Informações: Initializing ProtocolHandler [“http-bio-8080”]
Jan 11, 2013 9:44:21 AM org.apache.coyote.AbstractProtocol init
Informações: Initializing ProtocolHandler [“ajp-bio-8009”]
Jan 11, 2013 9:44:21 AM org.apache.catalina.startup.Catalina load
Informações: Initialization processed in 544 ms
Jan 11, 2013 9:44:21 AM org.apache.catalina.core.StandardService startInternal
Informações: Starting service Catalina
Jan 11, 2013 9:44:21 AM org.apache.catalina.core.StandardEngine startInternal
Informações: Starting Servlet Engine: Apache Tomcat/7.0.33
Jan 11, 2013 9:44:22 AM org.apache.catalina.startup.HostConfig deployDescriptor
Informações: Deploying configuration descriptor C:\Documents and Settings\israel.teixeira\Meus documentos\Eclipse\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\conf\Catalina\localhost\Biblioteca.xml
Jan 11, 2013 9:44:22 AM org.apache.catalina.startup.SetContextPropertiesRule begin
Advertência: [SetContextPropertiesRule]{Context} Setting property ‘source’ to ‘org.eclipse.jst.j2ee.server:Biblioteca’ did not find a matching property.
Jan 11, 2013 9:44:24 AM org.apache.catalina.core.ApplicationContext log
Informações: Initializing Spring root WebApplicationContext
Jan 11, 2013 9:44:24 AM org.springframework.web.context.ContextLoader initWebApplicationContext
Informações: Root WebApplicationContext: initialization started
Jan 11, 2013 9:44:24 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
Informações: Refreshing Root WebApplicationContext: startup date [Fri Jan 11 09:44:24 BRST 2013]; root of context hierarchy
Jan 11, 2013 9:44:24 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
Informações: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
Jan 11, 2013 9:44:24 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
Informações: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@12e71a4: defining beans [livroAction,genericDAO,livroDAO,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,transactionManager,entityManager,entityManagerFactory,jpaDialect,org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor#0,jpaVendorAdapter,dataSource]; root of factory hierarchy
Jan 11, 2013 9:44:24 AM org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons
Informações: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@12e71a4: defining beans [livroAction,genericDAO,livroDAO,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,transactionManager,entityManager,entityManagerFactory,jpaDialect,org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor#0,jpaVendorAdapter,dataSource]; root of factory hierarchy
Jan 11, 2013 9:44:24 AM org.springframework.web.context.ContextLoader initWebApplicationContext
Grave: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘livroAction’: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private br.com.knowtec.persistence.impl.LivroDAO br.com.knowtec.action.impl.LivroAction.livroDAO; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [DataSource] for bean with name ‘dataSource’ defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: DataSource
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:657)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1637)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private br.com.knowtec.persistence.impl.LivroDAO br.com.knowtec.action.impl.LivroAction.livroDAO; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [DataSource] for bean with name ‘dataSource’ defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: DataSource
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:502)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:282)
… 27 more
Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [DataSource] for bean with name ‘dataSource’ defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: DataSource
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1250)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1319)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:315)
at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:185)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:829)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:786)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:474)
… 29 more
Caused by: java.lang.ClassNotFoundException: DataSource
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:257)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1271)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1242)
… 37 more

Jan 11, 2013 9:44:24 AM org.apache.catalina.core.StandardContext listenerStart
Grave: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘livroAction’: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private br.com.knowtec.persistence.impl.LivroDAO br.com.knowtec.action.impl.LivroAction.livroDAO; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [DataSource] for bean with name ‘dataSource’ defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: DataSource
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:657)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1637)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private br.com.knowtec.persistence.impl.LivroDAO br.com.knowtec.action.impl.LivroAction.livroDAO; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [DataSource] for bean with name ‘dataSource’ defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: DataSource
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:502)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:84)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:282)
… 27 more
Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [DataSource] for bean with name ‘dataSource’ defined in ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: DataSource
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1250)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1319)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:315)
at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:185)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:829)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:786)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:474)
… 29 more
Caused by: java.lang.ClassNotFoundException: DataSource
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:257)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1271)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1242)
… 37 more

Jan 11, 2013 9:44:24 AM org.apache.catalina.core.StandardContext startInternal
Grave: Error listenerStart
Jan 11, 2013 9:44:24 AM org.apache.catalina.core.StandardContext startInternal
Grave: Context [/Biblioteca] startup failed due to previous errors
Jan 11, 2013 9:44:24 AM org.apache.catalina.core.ApplicationContext log
Informações: Closing Spring root WebApplicationContext
Jan 11, 2013 9:44:24 AM org.apache.coyote.AbstractProtocol start
Informações: Starting ProtocolHandler [“http-bio-8080”]
Jan 11, 2013 9:44:24 AM org.apache.coyote.AbstractProtocol start
Informações: Starting ProtocolHandler [“ajp-bio-8009”]
Jan 11, 2013 9:44:24 AM org.apache.catalina.startup.Catalina start
Informações: Server startup in 3094 ms[/code]

Meu applicationcontext

[code]<?xml version="1.0" encoding="UTF-8"?>

<context:component-scan base-package="br.com.knowtec" />
<context:annotation-config/>
<property name="dataSource" ref="DataSource" />
<property name="persistenceUnitName" value="persistenceUnit" />
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
<property name="jpaDialect" ref="jpaDialect" />
<property name="jpaVendorAdapter">
    <bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
    </bean>
</property>
<property name="loadTimeWeaver">
    <bean class="org.springframework.instrument.classloading.SimpleLoadTimeWeaver" />
</property>
[/code]

E meu persistence.xml dentro da META-INF

[code]<?xml version="1.0" encoding="UTF-8"?>

	<provider>
	    org.eclipse.persistence.jpa.PersistenceProvider
	</provider>

	<class>br.com.knowtec.entity.Livro</class>

	<properties>
		<property name="ecpliselink.dll-generation.output-mode"
			value="database" />
		<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
		<property name="javax.persistence.jdbc.url"
			value="jdbc:mysql://localhost:3306/lib" />
		<property name="javax.persistence.jdbc.user" value="root" />
		<property name="javax.persistence.jdbc.password" value="" />
		<property name="eclipselink.logging.level" value="ALL" />

	</properties>
</persistence-unit>

[/code]

Acho que o problema está na classe do seu datasource e quando você liga o datasource no entityManagerfactory.

Tente fazer o seguinte

Modifique o bean entityManagerFactory, a propriedade datasource para ref=“datasource”, afinal o nome bean do datasource é datasource.

<property name="dataSource" ref="DataSource" />

E no bean do datasource tente colocar essa class

Também não entendi esse bean

Se você está usando o eclipseLink como provider, porque definir o hibernate como jpa vendor ?

a sua classe ‘livroAction’ não esta no contexto do spring…
vc anotou ela com @Component ou @Service ou @Repository?

posta ela porfavor =D

O erro é dessa classe datasource que ele colocou como class do bean datasource, pois tem que ser o caminho completo da classe.

é verdade, agora que vi, ele colocou o class como dataSource… sendo que tem que por o caminho completo da classe do spring…

é por isso que é tenso sair copiando e colando projetos da internet… o rsg tinha que ter desenvolvido passo a passo…

acredito que tenha mais coisas a ser feita, alem de alterar o datasource;… hehehhehe

Caros bom dia,

estive alguns dias fora e não consegui dar continuidade. Bom fiz o que os amigos falaram e passou dessa parte, porem
apareceu um novo erro. Request null, mas a unica coisa que eu mudei foi a integração com o spring,
se eu tirar as configurações do spring, deixando somente o struts2+ jpa ele funciona corretamente.
Alguém pode me ajudar?

Jan 21, 2013 11:21:08 AM com.opensymphony.xwork2.util.logging.commons.CommonsLogger error Grave: Exception occurred during processing request: null java.lang.NullPointerException at br.com.knowtec.business.LivroBO.salvarLivroBO(LivroBO.java:21) at br.com.knowtec.action.impl.LivroAction.salvarLivro(LivroAction.java:56) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:446) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:285) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:238) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:238) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:544) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

mostre a sua classe LivroBO, dentro do pacote business.

Bom dia lele_vader.
Obrigado pela atenção.

Segue, o que eu reparei é que o @autowired livroBO dentro meu livroAction esta vindo null…Não sei se pode ser isso, bom segue a classe.

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


@Service
@Transactional
public class LivroBO extends BaseBO{
	
	//private LivroDAO livroDAO = new LivroDAO();
	@Autowired
	private LivroDAO livroDAO;
	
	public boolean salvarLivroBO(Livro livro){
		return livroDAO.salvar(livro);
	}
	
	public boolean editarLivroBO(Livro livro){
		return livroDAO.editar(livro);
	}
	
	public boolean excluirLivroBO(Livro livro){
		return livroDAO.remover(livro);
	}
	
	public List<Livro> listarLivrosBO(Class<?> classe){
		return livroDAO.listarTodos(Livro.class);
	}
	
	public Livro listarPorIdBO(Class<?> classe, Integer id){
		return livroDAO.listarPorID(Livro.class, id);
	}

	public LivroDAO getLivroDAO() {
		return livroDAO;
	}

	public void setLivroDAO(LivroDAO livroDAO) {
		this.livroDAO = livroDAO;
	}

}

Classe BO:

public abstract class BaseBO implements BaseBOInterface {

}

E BOInterface:

public interface BaseBOInterface {

}

deve ser isso que está causando o erro mesmo.
Me mostra o seu livroAction.

BaseAction

import com.opensymphony.xwork2.ActionSupport;

public abstract class BaseAction extends ActionSupport{

	private static final long serialVersionUID = -8256392440378361559L;

}

E LivroAction

import java.util.List;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;


@Controller
@ParentPackage("struts-default")
@Namespace("/")
public class LivroAction extends BaseAction{

	private static final long serialVersionUID = 2917241744953639920L;
	private Integer idLivro;
	private String nome;
	private String editora;
	private String autor;
	private String ano;
	private String descricao;
	private Livro livro;
	private List<Livro> livros;
	
	@Autowired
	LivroBO livroBO;
	
	
	@Action(value = "cadastroLivro", results = { @Result(name = SUCCESS, location = "/cadastroLivro.jsp") })
	public String habCadastro() {
		System.out.println("habcadastro");
		return SUCCESS;
	}
	
	@Action(value = "habList", results = { @Result(name = SUCCESS, location = "/listarLivros.jsp") })
	public String habList() {
		setLivros(livroBO.listarLivrosBO(Livro.class));
		System.out.println("listar");
		System.out.println("hablistar");
		return SUCCESS;
	}
	

	@Action(value="salvarLivro", results={
			@Result(name=SUCCESS, type="redirectAction", params={"actionName", "listarLivros"})
		})
	public String salvarLivro() {
		if (getLivro().getIdLivro() == null) {
			livroBO.salvarLivroBO(getLivro());
			System.out.println("livro salvo");
		} else {
			livroBO.editarLivroBO(getLivro());
			System.out.println("livro editado");
		}
		return SUCCESS;
	}

	@Action(value = "listarLivros", results = { @Result(name = SUCCESS, location = "/listarLivros.jsp") })
	public String listarLivros() {
		setLivros(livroBO.listarLivrosBO(Livro.class));
		System.out.println("listar");
		return SUCCESS;
	}

	@Action(value = "preparaEditarLivro", results = { @Result(name = SUCCESS, location = "/cadastroLivro.jsp") })
	public String preparaEditar() {
		livroBO.listarPorIdBO(Livro.class, getLivro().getIdLivro());
		return SUCCESS;
	}

	@Action(value="excluirLivro", results={
			@Result(name=SUCCESS, type="redirectAction", params={"actionName", "listarLivros"})
		})
	public String excluir() {
		setLivro(livroBO.listarPorIdBO(Livro.class, getLivro().getIdLivro()));
		livroBO.excluirLivroBO(getLivro());
		System.out.println("livro excluido");
		return SUCCESS;
	}
	
	
	public Integer getIdLivro() {
		return idLivro;
	}
	public void setIdLivro(Integer idLivro) {
		this.idLivro = idLivro;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getEditora() {
		return editora;
	}
	public void setEditora(String editora) {
		this.editora = editora;
	}
	public String getAutor() {
		return autor;
	}
	public void setAutor(String autor) {
		this.autor = autor;
	}
	public String getAno() {
		return ano;
	}
	public void setAno(String ano) {
		this.ano = ano;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public Livro getLivro() {
		return livro;
	}
	public void setLivro(Livro livro) {
		this.livro = livro;
	}
	public List<Livro> getLivros() {
		return livros;
	}
	public void setLivros(List<Livro> livros) {
		this.livros = livros;
	}
	
	
}

Tenta criar um get para o livroBO na action

É eu estava lendo http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/beans.html#beans-autowired-annotation
e ele menciona setters e dai percebi que estava faltando get/set na Action e BO, e acabei gerando ambos mas nada mudou.

Mesmo com o get e set na action ainda o service continua como null ?

[code]@Autowired
private LivroBO livroBO;

public LivroBO getLivroBO() {
	return livroBO;
}

public void setLivroBO(LivroBO livroBO) {
	this.livroBO = livroBO;
}[/code]

[URL=http://imageshack.us/photo/my-images/221/imagemrta.jpg/][/URL]

Você configurou o seu web.xml para usar com o spring ?

Sim, pesquisei os erros mais comuns nesses casos e eram não anotar

no applicationContext e tbm o web.xml.

[code]<?xml version="1.0" encoding="UTF-8"?>

Final

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter


struts2
/*

<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<welcome-file-list>
	<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

[/code]

Acho que falta da propriedade contextConfigLocation, apontando para o arquivo do appContext.

Agora a tarde vou dar uma pesquisada nisso, mas seria alguma coisa nesse sentido?

<context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/applicationContext.xml </param-value> </context-param>

Obrigado!!

Isso ai, considerando que o nome do seu arquivo é applicationContext.xml

Pois eh, testei do jeito que esta ali e outros semelhantes e não foi, não sei mais pra onde correr…