Eclipselink + Spring

20 respostas
R

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.
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
Meu applicationcontext
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:int="http://www.springframework.org/schema/integration"
	xmlns:int-jpa="http://www.springframework.org/schema/integration/jpa"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
		http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
		http://www.springframework.org/schema/integration/jpa http://www.springframework.org/schema/integration/jpa/spring-integration-jpa.xsd">
 
    <context:component-scan base-package="br.com.knowtec" />
    <context:annotation-config/>
<!-- <import resource="classpath:/META-INF/persistence.xml" /> -->
<!-- Spring transaction manager -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" p:entityManagerFactory-ref="entityManagerFactory" />

<!-- JPA Hibernate shared entity manager -->
<bean id="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean" p:entityManagerFactory-ref="entityManagerFactory" />


<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

    <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>
</bean>

         
<bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect" />

<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
    <property name="generateDdl" value="true" />
    <property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" />
    <!-- <property name="showSql" value="true" /> -->
</bean>


<bean id="dataSource" class="DataSource" destroy-method="close">
    <property name="driverClass" value="com.mysql.jdbc.Driver" />
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/lib" />
    <property name="user" value="root" />
    <property name="password" value="root" />
    <property name="acquireIncrement" value="5" />
    <property name="idleConnectionTestPeriod" value="60" />
    <property name="maxPoolSize" value="100" />
    <property name="maxStatements" value="50" />
    <property name="minPoolSize" value="10" />
</bean>
</beans>
E meu persistence.xml dentro da META-INF
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
	version="1.0">
	<persistence-unit name="persistenceUnit"
	transaction-type="RESOURCE_LOCAL">
		
		<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>
</persistence>

20 Respostas

L

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 ?

D

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

posta ela porfavor =D

L

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

D

é 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

R

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)

L

mostre a sua classe LivroBO, dentro do pacote business.

R

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 {

}
L

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

R

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;
	}
	
	
}
L

Tenta criar um get para o livroBO na action

R

É 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.

L

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

R
@Autowired
	private LivroBO livroBO;
	
	public LivroBO getLivroBO() {
		return livroBO;
	}
	
	public void setLivroBO(LivroBO livroBO) {
		this.livroBO = livroBO;
	}

[IMG]http://img221.imageshack.us/img221/6387/imagemrta.jpg[/IMG]

L

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

R

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

<context:component-scan base-package="br.com.knowtec" />

no applicationContext e tbm o web.xml.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Final</display-name>
  <filter>
		<filter-name>struts2</filter-name>
		<filter-class>
			org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>
L

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

R

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!!

L

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

R

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

R

Pesquisei bastante, mas ainda não consegui.

Alguémmmm, uma luz no fim do túnel plsssssss. hahaha. :lol:

Criado 11 de janeiro de 2013
Ultima resposta 24 de jan. de 2013
Respostas 20
Participantes 3