Problema de integração com JBoss AS 7.1.1, Spring 3 e Hibernate 4

Bom dia pessoal,

Estou tentando atualizar o meu projeto para novas tecnologias e acabei refazendo um novo para testar utilizando JBoss AS 7.1.1, Spring 3 e Hibernate 4. Tentei fazer um insert simples e está dando erro na transação.
OBS.: Para visão utilizo ZK que tenho experiência já, com ele está ok.
O erro é o seguinte:

>>org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()
>>java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()
>>	at org.hibernate.ejb.AbstractEntityManagerImpl.getTransaction(AbstractEntityManagerImpl.java:1009)
>>	at org.springframework.orm.jpa.DefaultJpaDialect.beginTransaction(DefaultJpaDialect.java:70)
>>	at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:377)
>>	at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:371)
>>	at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:334)
>>	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:105)
>>	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>>	at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
>>	at br.edu.unievangelica.Test.DAO$$EnhancerByCGLIB$$8b7b39cf.processMessage(<generated>)
>>	at br.edu.unievangelica.Test.MyViewModel.cmd(MyViewModel.java:75)
>>	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>	at java.lang.reflect.Method.invoke(Method.java:601)
>>	at bsh.Reflect.invokeMethod(Unknown Source)
>>	at bsh.Reflect.invokeObjectMethod(Unknown Source)
>>	at bsh.Name.invokeMethod(Unknown Source)
>>	at bsh.BSHMethodInvocation.eval(Unknown Source)
>>	at bsh.BSHPrimaryExpression.eval(Unknown Source)
>>	at bsh.BSHPrimaryExpression.eval(Unknown Source)
>>	at bsh.Interpreter.eval(Unknown Source)
>>	at bsh.Interpreter.eval(Unknown Source)
>>	at org.zkoss.zk.scripting.bsh.BSHInterpreter.exec(BSHInterpreter.java:131)
>>	at org.zkoss.zk.scripting.util.GenericInterpreter.interpret(GenericInterpreter.java:328)
>>	at org.zkoss.zk.ui.impl.PageImpl.interpret(PageImpl.java:853)
>>	at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2695)
>>	at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2648)
>>	at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136)
>>	at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1702)
>>	at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1487)
>>	at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1204)
>>	at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:558)
>>	at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:456)
>>	at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:464)
>>	at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
>>	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
>>	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
>>	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
>>	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
>>	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
>>	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
>>	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
>>	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
>>	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
>>	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
>>	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
>>	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
>>	at java.lang.Thread.run(Thread.java:722)

Faz bastante tempo que pesquiso dessas tecnologias, mas o que quero fazer não achei exemplo, segue o pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>br.edu.unievangelica</groupId>
	<artifactId>Test</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<properties>
		<zk.version>6.0.1</zk.version>
		<commons-io>1.3.1</commons-io>
		<maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>
		<packname>-${project.version}-FL-${maven.build.timestamp}</packname>
		
        <mvn.spring.version>3.1.3.RELEASE</mvn.spring.version>
        <mvn.hibernate.version>4.1.7.Final</mvn.hibernate.version>
        <mvn.project.build.sourceEncoding>UTF-8</mvn.project.build.sourceEncoding>

        <!-- log4j -->
        <mvn.log4j.rootCategory>WARN</mvn.log4j.rootCategory>
        <mvn.log4j.category.org.springframework.beans.factory>WARN</mvn.log4j.category.org.springframework.beans.factory>
	</properties>
	<packaging>war</packaging>
	<name>The Test Project</name>
	<description>The Test Project</description>
	<licenses>
		<license>
			<name>GNU LESSER GENERAL PUBLIC LICENSE, Version 3</name>
			<url>http://www.gnu.org/licenses/lgpl.html</url>
			<distribution>repo</distribution>
		</license>
	</licenses>
	<repositories>
        
		<repository>
			<id>ZK CE</id>
			<name>ZK CE Repository</name>
			<url>http://mavensync.zkoss.org/maven2</url>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>zkmaven</id>
			<name>ZK Maven Plugin Repository</name>
			<url>http://mavensync.zkoss.org/maven2/</url>
		</pluginRepository>
	</pluginRepositories>
	<dependencies>
		<dependency>
		    <groupId>org.zkoss.zk</groupId>
		    <artifactId>zkspring-core</artifactId>
		    <version>3.1</version>
		</dependency>
		
		<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${mvn.spring.version}</version>
        </dependency>
        
		<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${mvn.spring.version}</version>
        </dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
			<version>${mvn.spring.version}</version>
			<exclusions>
				<!-- Exclude Commons Logging in favor of SLF4j -->
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		
		<!-- logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.6.1</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<version>1.6.1</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.6.1</version>
			<scope>runtime</scope>
		</dependency>


		<!-- Hibernate Stuff -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-annotations</artifactId>
			<version>3.5.6-Final</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-commons-annotations</artifactId>
			<version>3.2.0.Final</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>${mvn.hibernate.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-entitymanager</artifactId>
			<version>${mvn.hibernate.version}</version>
		    <exclusions>
		        <exclusion>
		            <groupId>cglib</groupId>
		            <artifactId>cglib</artifactId>
		        </exclusion>
		        <exclusion>
		            <groupId>dom4j</groupId>
		            <artifactId>dom4j</artifactId>
		        </exclusion>
		    </exclusions>
		</dependency>
		<dependency>
			<groupId>javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>3.12.1.GA</version>
			<scope>runtime</scope>
		</dependency>
	

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
	
		<dependency>
			<groupId>org.zkoss.zk</groupId>
			<artifactId>zkbind</artifactId>
			<version>${zk.version}</version>
		</dependency>
		<dependency>
			<groupId>org.zkoss.zk</groupId>
			<artifactId>zul</artifactId>
			<version>${zk.version}</version>
		</dependency>
		<dependency>
			<groupId>org.zkoss.zk</groupId>
			<artifactId>zkplus</artifactId>
			<version>${zk.version}</version>
		</dependency>
		<dependency>
			<groupId>org.zkoss.zk</groupId>
			<artifactId>zhtml</artifactId>
			<version>${zk.version}</version>
		</dependency>
		
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>${commons-io}</version>
		</dependency>
		
		<!-- Required only for Release in Jboss if we Exclude Hibernate becuase of conflict with JBoss -->
	
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.6.6</version>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib</artifactId>
			<version>2.2</version>
		</dependency>
		
			<dependency>
				<groupId>commons-collections</groupId>
				<artifactId>commons-collections</artifactId>
				<version>3.1</version>
			</dependency>
		
		
			<dependency>
				<groupId>dom4j</groupId>
				<artifactId>dom4j</artifactId>
				<version>1.6.1</version>
			</dependency>
		
			<dependency>
				<groupId>asm</groupId>
				<artifactId>asm</artifactId>
				<version>3.1</version>
			</dependency>
		
			<dependency>
				<groupId>antlr</groupId>
				<artifactId>antlr</artifactId>
				<version>2.7.6</version>
			</dependency>

			<dependency>
   			 	<groupId>xml-apis</groupId>
   			 	<artifactId>xml-apis</artifactId>
  			  	<version>1.0.b2</version>
  			  	<scope>provided</scope>
			</dependency>
	
	
			<dependency>
		    	<groupId>javax.validation</groupId>
		    	<artifactId>validation-api</artifactId>
		    	<version>1.0.0.GA</version>
		    	<scope>provided</scope>
			</dependency>
		
		<!-- ZK 5 breeze theme
		<dependency>
			<groupId>org.zkoss.theme</groupId>
			<artifactId>breeze</artifactId>
			<version>${zk.version}</version>
			<optional>true</optional>
		</dependency>
		 -->
	</dependencies>
	
	<build>
		<finalName>${project.artifactId}</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-ear-plugin</artifactId>
                    <version>2.4.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.4.3</version>
                </plugin>
            </plugins>

        </pluginManagement>
		<plugins>
			<!-- Compile java -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.5</source>
					<target>1.5</target>
				</configuration>
			</plugin>
			<!-- Build war -->
			<plugin>
				<artifactId>maven-war-plugin</artifactId>
				<groupId>org.apache.maven.plugins</groupId>
				</plugin>
			<!-- Pack zips -->
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>2.2</version>
				<executions>
					<execution>
						<id>webapp</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
						<configuration>
							<finalName>Test${packname}</finalName>
							<appendAssemblyId>false</appendAssemblyId>
							<descriptors>
								<descriptor>assembly/webapp.xml</descriptor>
							</descriptors>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	
	
</project>

o arquivo spring.xml

<?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:security="http://www.springframework.org/schema/security"
       xmlns:aop="http://www.springframework.org/schema/aop"
	   xmlns:tx="http://www.springframework.org/schema/tx"
		xmlns:jee="http://www.springframework.org/schema/jee"
	   xmlns:zksp="http://www.zkoss.org/2008/zkspring/core"
	   xmlns:context="http://www.springframework.org/schema/context"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans
						   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
						   http://www.springframework.org/schema/tx
						   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
						   http://www.springframework.org/schema/jee
						   http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
						   http://www.springframework.org/schema/aop
						   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
						   http://www.springframework.org/schema/context 
						   http://www.springframework.org/schema/context/spring-context-3.0.xsd
						   http://www.zkoss.org/2008/zkspring/core 
						   http://www.zkoss.org/2008/zkspring/core/zkspring-core.xsd">
		
		
	<context:annotation-config />
	<context:component-scan base-package="br.edu.unievangelica.Test" />
	
	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">	
    	<property name="persistenceUnitName" value="persistenceUnit" />
 	</bean>
 	
	
	<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
		<property name="entityManagerFactory" ref="entityManagerFactory" />
	</bean>

	<tx:annotation-driven/> 
	<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
    	

</beans>

E o persistence.xml

<?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_2_0.xsd"
	version="2.0">
	<persistence-unit name="persistenceUnit" transaction-type="JTA">
		<description>Hibernate 4 Persistence Unit.</description>
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>java:jboss/datasources/SQLServerDatasource</jta-data-source>
		<class>br.edu.unievangelica.Test.Entidade</class>
		<properties>
			<property name="hibernate.transaction.jta.platform"
				value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" />
			<property name="hibernate.transaction.manager_lookup_class"
				value="org.hibernate.transaction.WebSphereExtendedJTATransactionLookup" />
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="true" />
			<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
			<property name="hibernate.hbm2ddl.auto" value="create" />
		</properties>
	</persistence-unit>
</persistence>

Configurei o banco no standalone.xml, acho que não tem problemas com ele, atualizei o Hibernate do JBoss para 4.1.7-Final, junto atualizei algumas dependências.
O persistence.xml está na raiz dentro de META-INF, mas não consigo sair desse erro…
Segue minha classe DAO de teste:


import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;


@Repository
public class DAO {

	/**
	 * Atributo injetado pelo spring como provedor JPA. 
	 */
	@PersistenceContext
	protected EntityManager entityManager;

	@Transactional
	public String processMessage(Object entity) {
		entityManager.persist(entity);
		entityManager.flush();
		return "Sucess";
	}

}

Alguem ai pode me ajudar ou indicar onde pesquisar, já fui em quase todos os links do Google e nada…

Olha a mensagem de erro: nested exception is java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()

Se você usa container manager transaction você não pode fazer entityManager.getTransaction().

[quote=Hebert Coelho]Olha a mensagem de erro: nested exception is java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()

Se você usa container manager transaction você não pode fazer entityManager.getTransaction().[/quote]

Eu não uso getTransaction(), uso o @Transacional, e ok, já utilizei sem ele tb, deixei apenas chamando o método, ai é chamado o metodo persist e passa sobre ele, porém não insere os dados na tabela, se eu chamar o flush() da um erro parecido, segue erro sem o @Transacional:

13:41:08,662 SEVERE [org.zkoss] (http-localhost-127.0.0.1-8080-1) >>org.springframework.dao.InvalidDataAccessApiUsageException: no transaction is in progress; nested exception is javax.persistence.TransactionRequiredException: no transaction is in progress
>>javax.persistence.TransactionRequiredException: no transaction is in progress
>>	at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:983)
>>	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>	at java.lang.reflect.Method.invoke(Method.java:601)
>>	at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365)
>>	at $Proxy33.flush(Unknown Source)
>>	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>	at java.lang.reflect.Method.invoke(Method.java:601)
>>	at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)
>>	at $Proxy30.flush(Unknown Source)
>>	at br.edu.unievangelica.Test.DAO.processMessage(DAO.java:20)
>>	at br.edu.unievangelica.Test.DAO$$FastClassByCGLIB$$ef1c3c53.invoke(<generated>)
>>	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
>>	at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
>>	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
>>	at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155)
>>	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>>	at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
>>	at br.edu.unievangelica.Test.DAO$$EnhancerByCGLIB$$9c6be11a.processMessage(<generated>)
>>	at br.edu.unievangelica.Test.MyViewModel.cmd(MyViewModel.java:75)
>>	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>	at java.lang.reflect.Method.invoke(Method.java:601)
>>	at bsh.Reflect.invokeMethod(Unknown Source)
>>	at bsh.Reflect.invokeObjectMethod(Unknown Source)
>>	at bsh.Name.invokeMethod(Unknown Source)
>>	at bsh.BSHMethodInvocation.eval(Unknown Source)
>>	at bsh.BSHPrimaryExpression.eval(Unknown Source)
>>	at bsh.BSHPrimaryExpression.eval(Unknown Source)
>>	at bsh.Interpreter.eval(Unknown Source)
>>	at bsh.Interpreter.eval(Unknown Source)
>>	at org.zkoss.zk.scripting.bsh.BSHInterpreter.exec(BSHInterpreter.java:131)
>>	at org.zkoss.zk.scripting.util.GenericInterpreter.interpret(GenericInterpreter.java:328)
>>	at org.zkoss.zk.ui.impl.PageImpl.interpret(PageImpl.java:853)
>>	at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2695)
>>	at org.zkoss.zk.ui.AbstractComponent.service(AbstractComponent.java:2648)
>>	at org.zkoss.zk.ui.impl.EventProcessor.process(EventProcessor.java:136)
>>	at org.zkoss.zk.ui.impl.UiEngineImpl.processEvent(UiEngineImpl.java:1702)
>>	at org.zkoss.zk.ui.impl.UiEngineImpl.process(UiEngineImpl.java:1487)
>>	at org.zkoss.zk.ui.impl.UiEngineImpl.execUpdate(UiEngineImpl.java:1204)
>>	at org.zkoss.zk.au.http.DHtmlUpdateServlet.process(DHtmlUpdateServlet.java:558)
>>	at org.zkoss.zk.au.http.DHtmlUpdateServlet.doGet(DHtmlUpdateServlet.java:456)
>>	at org.zkoss.zk.au.http.DHtmlUpdateServlet.doPost(DHtmlUpdateServlet.java:464)
>>	at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
>>	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
>>	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
>>	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
>>	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
>>	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
>>	at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50)
>>	at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
>>	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
>>	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
>>	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
>>	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
>>	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
>>	at java.lang.Thread.run(Thread.java:722)

Hebert, vamos ver se você pode me ajudar,

eu preciso configurar o JBoss com Spring e Hibernate, da forma mais automatica possivel, mas que se houver alguma excessão, eu consiga configurá-la (exemplo: um metodo que faz vários inserts e se der erro em algum dar rollback em todo o metodo).
O que eu encontrei pesquisando foi isso, já fiz várias configurações que atendiam (teoricamente) o que eu precisava, mas sempre dava erro em algum pedaço, conflito em algo e tinha que mudar algo, como tinha poucos exemplos tinha que mudar quase que toda a configuração, agora que cheguei a uma mais estavel.

Ai veiu se vc está utilizando o spring para controlar a sua transação! Para que realizar o flush???
Se todo commit o flush é realizado junto.

Agora o erro é pq vc não tem nenhuma EntityManager aberta, e como vc anotou o método como transaction o spring precisa da EntityManager corrente, mas tem que ser a corrente.

Estou usando o flush porque não estava commitando, ai achei um exemplo com ele e puis, mas vamos la…
mudei o spring.xml para isso:

<?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:security="http://www.springframework.org/schema/security"
       xmlns:aop="http://www.springframework.org/schema/aop"
	   xmlns:tx="http://www.springframework.org/schema/tx"
		xmlns:jee="http://www.springframework.org/schema/jee"
	   xmlns:zksp="http://www.zkoss.org/2008/zkspring/core"
	   xmlns:context="http://www.springframework.org/schema/context"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans
						   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
						   http://www.springframework.org/schema/tx
						   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
						   http://www.springframework.org/schema/jee
						   http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
						   http://www.springframework.org/schema/aop
						   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
						   http://www.springframework.org/schema/context 
						   http://www.springframework.org/schema/context/spring-context-3.0.xsd
						   http://www.zkoss.org/2008/zkspring/core 
						   http://www.zkoss.org/2008/zkspring/core/zkspring-core.xsd">
		
		
	<context:annotation-config />
	<context:component-scan base-package="br.edu.unievangelica.Test" />
	<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory" ref="entityManagerFactory" />
	</bean>

	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="loadTimeWeaver">
			<bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
		</property>
	</bean>
	
	<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
    
    <zksp:zk-config/>

</beans>

Na DAO usei o @PersistUnit para pegar o EntityManager e tentar persistir, tentei da getTransition nele e diz que o JTA não pode ser usado no getTransition
Voltei para @PersistContext e ele não da erro ne excessão nenhuma sem o flush, porem não altera o banco. Simplesmente passa por tudo e não insere nada.
Se por o flush da exception.

DAO que não insere no banco, mas não da erro:


import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;


@Repository
public class DAO {

	/**
	 * Atributo injetado pelo spring como provedor JPA. 
	 */
	@PersistenceContext
	private EntityManager entityManager;

	@Transactional
	public String processMessage(Object entity) {
		entityManager.persist(entity);
		return "Sucess";
	}

}

Como vc está utilizando o spring para controlar a transação ele irá fazer o commit, e o commit já realiza o flush.
Utiliza o filter do spring, OpenEntityManagerInViewFilter que irá abrir sua EntityManager:
http://blog.smartkey.co.uk/2010/03/open-session-in-view-pattern-spring-jpa/

[quote=yoshikichi]Como vc está utilizando o spring para controlar a transação ele irá fazer o commit, e o commit já realiza o flush.
Utiliza o filter do spring, OpenEntityManagerInViewFilter que irá abrir sua EntityManager:
http://blog.smartkey.co.uk/2010/03/open-session-in-view-pattern-spring-jpa/[/quote]

Esse Filter irá abrir a transação ao abrir uma página JSP (no caso do exemplo), certo?

De todo jeito estou lendo a documentação do JBoss 7, e vou testar esse e o exemplo de lá, vlw ai xD