Caros amigos,
Estou com um problema que não sei mais o que fazer para resolver. Tenho uma app web usando JPA/JTA (hibernate) no JBOSS, que está o ocorrendo o seguinte erro quando tento salvar um novo objeto no banco de dados (MySql):
javax.persistence.TransactionRequiredException: JBAS011469: Transaction is required to perform this operation (either use a transaction or extended persistence context)
O erro ocorre neste ponto:
...
@Stateless
@SuppressWarnings({ "unchecked", "rawtypes"})
@TransactionManagement(TransactionManagementType.CONTAINER)
public class GenericService<T> implements Serializable
{
private static final long serialVersionUID = 1L;
@PersistenceContext
protected EntityManager em;
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public T save(T t)
{
try
{
System.out.println(">>>>>>>>>>>>>>>>>>>>>> Persist");
this.em.persist(t); <<<<<<<<<<<<<< ERRO OCORRE AQUI!!!
}
catch (Exception e)
{
e.printStackTrace();
}
return t;
}
...
persistente.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
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_2_0.xsd">
<persistence-unit name="pcp_test_PU" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/pcp_teste-ds</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="false"/>
</properties>
</persistence-unit>
</persistence>
datasource file
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<datasource jta="true"
jndi-name="java:/pcp_teste-ds"
pool-name="pcp_teste-pool"
enable="true"
use-java-context="true"
use-ccm="true">
<connection-url>jdbc:mysql://localhost:3306/pcp_teste</connection-url>
<driver>com.mysql</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>5</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>teste</user-name>
<password>teste</password>
</security>
<statement>
<prepared-statement-cache-size>32</prepared-statement-cache-size>
</statement>
</datasource>
</datasources>
Já adicionei a anotação abaixo no método e nada…
@TransactionAttribute(TransactionAttributeType.REQUIRED)
E a anotação abaixo na classe…e nada tb
@TransactionManagement(TransactionManagementType.CONTAINER)
O erro completo segue abaixo
...
02:35:19,279 INFO [stdout] (pool-3-thread-1) Hibernate: select usuario0_.id as id3_0_, usuario0_.ativo as ativo3_0_, usuario0_.id_classificacaoProfissional as id7_3_0_, usuario0_.id_controleAcesso as id8_3_0_, usuario0_.dataAdmissao as dataAdmi3_3_0_, usuario0_.id_disciplina as id9_3_0_, usuario0_.email as email3_0_, usuario0_.id_faixaSalarial as id10_3_0_, usuario0_.matricula as matricula3_0_, usuario0_.nome as nome3_0_ from usuario usuario0_ where usuario0_.id=?
02:35:19,289 INFO [stdout] (pool-3-thread-1) >>>>>>>>>>>>>>>>>>>>>> Persist
02:35:19,294 ERROR [stderr] (pool-3-thread-1) javax.persistence.TransactionRequiredException: JBAS011469: Transaction is required to perform this operation (either use a transaction or extended persistence context)
02:35:19,298 ERROR [stderr] (pool-3-thread-1) at org.jboss.as.jpa.container.AbstractEntityManager.transactionIsRequired(AbstractEntityManager.java:692)
02:35:19,301 ERROR [stderr] (pool-3-thread-1) at org.jboss.as.jpa.container.AbstractEntityManager.persist(AbstractEntityManager.java:562)
02:35:19,303 ERROR [stderr] (pool-3-thread-1) at br.com.snclavalinmarte.pcp.cliente.services.GenericService.save(GenericService.java:36)
02:35:19,306 ERROR [stderr] (pool-3-thread-1) at br.com.snclavalinmarte.pcp.client.services.TestUsuarioService.testAdd(TestUsuarioService.java:94)
02:35:19,308 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
02:35:19,310 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
02:35:19,313 ERROR [stderr] (pool-3-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
02:35:19,315 ERROR [stderr] (pool-3-thread-1) at java.lang.reflect.Method.invoke(Method.java:597)
02:35:19,317 ERROR [stderr] (pool-3-thread-1) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
02:35:19,320 ERROR [stderr] (pool-3-thread-1) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
02:35:19,322 ERROR [stderr] (pool-3-thread-1) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
02:35:19,325 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:270)
02:35:19,327 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60)
02:35:19,330 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
02:35:19,332 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
02:35:19,335 ERROR [stderr] (pool-3-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
02:35:19,337 ERROR [stderr] (pool-3-thread-1) at java.lang.reflect.Method.invoke(Method.java:597)
02:35:19,339 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
02:35:19,341 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
02:35:19,344 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
02:35:19,346 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
02:35:19,348 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115)
02:35:19,351 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
02:35:19,353 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.container.test.impl.execution.ContainerTestExecuter.execute(ContainerTestExecuter.java:38)
02:35:19,356 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
02:35:19,358 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
02:35:19,360 ERROR [stderr] (pool-3-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
02:35:19,363 ERROR [stderr] (pool-3-thread-1) at java.lang.reflect.Method.invoke(Method.java:597)
02:35:19,365 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
02:35:19,367 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
02:35:19,369 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
02:35:19,372 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:89)
02:35:19,374 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
02:35:19,376 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
02:35:19,379 ERROR [stderr] (pool-3-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
02:35:19,381 ERROR [stderr] (pool-3-thread-1) at java.lang.reflect.Method.invoke(Method.java:597)
02:35:19,383 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
02:35:19,385 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
02:35:19,388 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:75)
02:35:19,390 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
02:35:19,393 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
02:35:19,395 ERROR [stderr] (pool-3-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
02:35:19,397 ERROR [stderr] (pool-3-thread-1) at java.lang.reflect.Method.invoke(Method.java:597)
02:35:19,399 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
02:35:19,401 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
02:35:19,404 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:60)
02:35:19,406 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
02:35:19,408 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
02:35:19,411 ERROR [stderr] (pool-3-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
02:35:19,413 ERROR [stderr] (pool-3-thread-1) at java.lang.reflect.Method.invoke(Method.java:597)
02:35:19,415 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
02:35:19,418 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
02:35:19,420 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
02:35:19,423 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:111)
02:35:19,426 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:263)
02:35:19,429 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:226)
02:35:19,431 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314)
02:35:19,433 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46)
02:35:19,436 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:240)
02:35:19,438 ERROR [stderr] (pool-3-thread-1) at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
02:35:19,440 ERROR [stderr] (pool-3-thread-1) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
02:35:19,443 ERROR [stderr] (pool-3-thread-1) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
02:35:19,445 ERROR [stderr] (pool-3-thread-1) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
02:35:19,447 ERROR [stderr] (pool-3-thread-1) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
02:35:19,450 ERROR [stderr] (pool-3-thread-1) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
02:35:19,452 ERROR [stderr] (pool-3-thread-1) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
02:35:19,456 ERROR [stderr] (pool-3-thread-1) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
02:35:19,458 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:185)
02:35:19,461 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314)
02:35:19,463 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46)
02:35:19,465 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:199)
02:35:19,468 ERROR [stderr] (pool-3-thread-1) at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
02:35:19,470 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:147)
02:35:19,472 ERROR [stderr] (pool-3-thread-1) at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
02:35:19,474 ERROR [stderr] (pool-3-thread-1) at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
02:35:19,476 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.junit.container.JUnitTestRunner.execute(JUnitTestRunner.java:65)
02:35:19,478 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethodInternal(JMXTestRunner.java:128)
02:35:19,481 ERROR [stderr] (pool-3-thread-1) at org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethod(JMXTestRunner.java:107)
02:35:19,483 ERROR [stderr] (pool-3-thread-1) at org.jboss.as.arquillian.service.ArquillianService$ExtendedJMXTestRunner.runTestMethod(ArquillianService.java:226)
02:35:19,486 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
02:35:19,488 ERROR [stderr] (pool-3-thread-1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
02:35:19,491 ERROR [stderr] (pool-3-thread-1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
02:35:19,493 ERROR [stderr] (pool-3-thread-1) at java.lang.reflect.Method.invoke(Method.java:597)
02:35:19,495 ERROR [stderr] (pool-3-thread-1) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
02:35:19,499 ERROR [stderr] (pool-3-thread-1) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
02:35:19,502 ERROR [stderr] (pool-3-thread-1) at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
02:35:19,504 ERROR [stderr] (pool-3-thread-1) at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
02:35:19,506 ERROR [stderr] (pool-3-thread-1) at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
02:35:19,508 ERROR [stderr] (pool-3-thread-1) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
02:35:19,513 ERROR [stderr] (pool-3-thread-1) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
02:35:19,517 ERROR [stderr] (pool-3-thread-1) at org.jboss.as.jmx.PluggableMBeanServerImpl$TcclMBeanServer.invoke(PluggableMBeanServerImpl.java:498)
02:35:19,521 ERROR [stderr] (pool-3-thread-1) at org.jboss.as.jmx.PluggableMBeanServerImpl.invoke(PluggableMBeanServerImpl.java:246)
02:35:19,525 ERROR [stderr] (pool-3-thread-1) at org.jboss.remotingjmx.protocol.v1.ServerProxy$InvokeHandler.handle(ServerProxy.java:1034)
02:35:19,528 ERROR [stderr] (pool-3-thread-1) at org.jboss.remotingjmx.protocol.v1.ServerProxy$MessageReciever$1.run(ServerProxy.java:215)
02:35:19,531 ERROR [stderr] (pool-3-thread-1) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
02:35:19,533 ERROR [stderr] (pool-3-thread-1) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
02:35:19,536 ERROR [stderr] (pool-3-thread-1) at java.lang.Thread.run(Thread.java:662)
...