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…