我正在尝试使用嵌入式野蝇运行我们的JPA单元测试。到目前为止,当我进行清洁时,我得到了以下步骤的工作
现在我的问题是:当我调用. create()或。我的单元测试中entitymanager上的delete()方法:
Caused by: javax.persistence.TransactionRequiredException: JBAS011469: Transaction is required to perform this operation (either use a transaction or extended persistence context)
这些是我的pom.xml的重要依赖关系:
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.1.7.Final</version>
<scope>test</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.test</groupId>
<artifactId>arquillian-test-spi</artifactId>
<version>1.1.7.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<version>1.1.7.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-arquillian-container-embedded</artifactId>
<version>8.2.0.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-embedded</artifactId>
<version>8.2.0.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.0.2.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.shrinkwrap.resolver</groupId>
<artifactId>shrinkwrap-resolver-depchain</artifactId>
<version>2.1.1</version>
<scope>test</scope>
<type>pom</type>
</dependency>
</dependencies>
<!-- Plugins -->
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>process-test-classes</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.wildfly</groupId>
<artifactId>wildfly-dist</artifactId>
<version>8.2.0.Final</version>
<type>zip</type>
<overWrite>false</overWrite>
<outputDirectory>target</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<execution>
<id>copy-db-driver</id>
<phase>process-test-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.microsoft</groupId>
<artifactId>sqljdbc</artifactId>
<version>4.0.2206.100</version>
<outputDirectory>target/wildfly-8.2.0.Final/standalone/deployments</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.0.2.Final</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
<execution>
<id>datasource</id>
<phase>package</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<address>subsystem=datasources,data-source=tests</address>
<resources>
<resource>
<properties>
<connection-url>jdbc:sqlserver://SERVERADRESS_CENSORED;instanceName=web;databaseName=TMCDB</connection-url>
<jndi-name>java:jdbc/TMCDB</jndi-name>
<enabled>true</enabled>
<enable>true</enable>
<user-name>USER_CENSORED</user-name>
<password>PW_CENSORED</password>
<driver-name>sqljdbc-4.0.2206.100.jar</driver-name>
<use-ccm>false</use-ccm>
</properties>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
在我的persistence.xml中,我设置了事务类型="JTA"。
这是部分,其中 .war 文件由阿奎利亚/收缩包装创建。这些东西用阿奎利安的@Deployment标签注释:
PomEquippedResolveStage loadPomFromFile = Maven.resolver().loadPomFromFile("pom.xml");
File[] asFile = loadPomFromFile.importRuntimeAndTestDependencies().resolve().withTransitivity().asFile();
//MavenStrategyStage asFile = loadPomFromFile.importRuntimeAndTestDependencies().resolve();
WebArchive webArchive = ShrinkWrap.create(WebArchive.class)
.addAsLibraries(asFile)
.addPackages(true, "de.companyXYZ")
.addPackages(true, "org.springframework.beans.factory.config")
// Adding persistence unit
.addAsResource("test-persistence.xml", "META-INF/persistence.xml")
// Add ms-sql driver for the embedded wildfly
.addAsWebInfResource("wildfly-ds-driver.xml")
// Add datasource for the embedded wildfly
.addAsWebInfResource("wildfly-ds.xml")
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
webArchive.as(ZipExporter.class).exportTo(new File("./target/test-package.war"), true);
那么,任何人都可以帮助我解决这个问题吗?我不明白为什么我得到这个异常 - 因为野蝇应该做交易管理 - 这就是我对他的期望...
我添加,这解决了我的交易问题
import org.jboss.arquillian.transaction.api.annotation.Transactional;
@Transactional
我正在使用Wildfly 10.0。0最终版本、JavaEE7、Maven和JPA2.1。当我查询数据库中的记录时,它可以正常工作并列出员工,但当我尝试保留新员工时,它会给我以下异常: 我正在尝试使用JSF和CDI bean实现这一点。我有一个JTA数据源,我在persistence.xml文件中配置了它: CDI豆可以在下面看到。这是相对简单的,有一个方法列出25名员工和另一个应该坚持一个特定的
问题内容: 我正在使用Wildfly 10.0.0 Final,Java EE7,Maven和JPA 2.1。当我查询数据库中的记录时,它可以正常工作并列出员工,但是当我尝试保留新员工时,它给了我以下异常: 我正在尝试使用JSF和CDI bean来实现。我有一个JTA数据源,已在persistence.xml文件中对其进行配置: 可以在下面看到CDI bean。比较简单,有一种方法可以列出25名雇
我用的是linux box。 我无法使用IPv6 FTP服务器执行任何操作。我能够使用IPV6 FTP服务器进行连接。但我什么时候做任何操作(比如ls、get、put…)下面是例外情况(用粗体突出显示)。 [root@SKP-vlnx~]#ftp aa01:9:1::22:56ff:231:4b连接到aa01:9:1::22:56ff:231:4b(aa01:9:1::22:56ff:231:4b
我们使用HiberNate作为JPA提供程序。当其中一个实体更新时,我需要对Quartz计划执行一些更新。目前,该代码是在该实体的更新方法中调用的。但是,Quartz更改只有在事务成功提交时才会生效。 我考虑过实现一个实体监听器,但是我只想在实体被特定方法修改时执行这些更新,并且我不确定JPA实体监听器是否支持依赖注入,我需要依赖注入来获取对Quartz调度器的引用。 有没有办法以编程方式附加活动
Redisson 支持对每个操作自动重试的策略并且在每次尝试期会尝试发送命令。 重试策略由设置项 retryAttempts (默认为 3) 和 retryInterval (默认为 1000 ms) 来控制。 每次尝试会在 retryInterval 时间间隔后执行。 Redisson 实例和 Redisson 对象都是完全线程安全的。 带有同步/异步方法的 Redisson 对象可通过 Red
当我们讨论使用Executors服务处理异步事件时,为什么创建一个新的固定线程池涉及到使用LinkedBlockingQueue?到达的事件完全不依赖,所以为什么要使用队列,因为使用者线程仍然会涉及take Lock的争用?为什么Executors类没有一些混合数据结构(例如并发映射实现),在大多数情况下不需要带锁?