当我尝试在junit测试类中加载配置文件时,在注入数据源时出现以下错误:
组织。springframework。豆。工厂NoSuchBeanDefinitionException:在组织中未定义名为“transactionManager”的bean。springframework。豆。工厂支持DefaultListableBeanFactory。位于org的getBeanDefinition(DefaultListableBeanFactory.java:529)。springframework。豆。工厂支持抽象工厂。位于org的getMergedLocalBeanDefinition(AbstractBeanFactory.java:1094)。springframework。豆。工厂支持抽象工厂。doGetBean(AbstractBeanFactory.java:276)位于org。springframework。豆。工厂支持抽象工厂。getBean(AbstractBeanFactory.java:196)位于org。springframework。上下文支持AbstractApplicationContext。位于org的getBean(AbstractApplicationContext.java:1079)。springframework。测验上下文交易TransactionalTestExecutionListener。getTransactionManager(TransactionalTestExecutionListener.java:308)位于org。springframework。测验上下文交易TransactionalTestExecutionListener。org上的beforeTestMethod(TransactionalTestExecutionListener.java:158)。springframework。测验上下文TestContextManager。beforeTestMethod(TestContextManager.java:358)位于org。springframework。测验上下文junit4。声明。RunBeforeTestMethodCallbacks。在org上评估(RunBeforeTestMethodCallbacks.java:73)。springframework。测验上下文junit4。声明。RunAfterTestMethodCallbacks。在org上评估(RunAfterTestMethodCallbacks.java:82)。springframework。测验上下文junit4。声明。重复。在org上评估(SpringRepeat.java:72)。springframework。测验上下文junit4。SpringJunia是一名优秀的跑步者。org上的runChild(SpringJUnit4ClassRunner.java:240)。朱尼特。跑步者。BlockJUnit4ClassRunner。org上的runChild(BlockJUnit4ClassRunner.java:50)。朱尼特。跑步者。家长跑步者3美元。在org上运行(ParentRunner.java:193)。朱尼特。跑步者。家长跑步者1美元。计划(ParentRunner.java:52)位于org。朱尼特。跑步者。家长跑步者。org上的runChildren(ParentRunner.java:191)。朱尼特。跑步者。家长跑步者。访问org上的$000(ParentRunner.java:42)。朱尼特。跑步者。家长跑步者2美元。在org上评估(ParentRunner.java:184)。springframework。测验上下文junit4。声明。RunBeforeTestClassCallbacks。在org上评估(RunBeforeTestClassCallbacks.java:61)。springframework。测验上下文junit4。声明。RunAfterTestClassCallbacks。在org上评估(RunAfterTestClassCallbacks.java:70)。朱尼特。跑步者。家长跑步者。在org上运行(ParentRunner.java:236)。springframework。测验上下文junit4。SpringJunia是一名优秀的跑步者。在org上运行(SpringJUnit4ClassRunner.java:180)。日食jdt。内部的junit4。跑步者JUnit4TestReference。在org上运行(JUnit4TestReference.java:49)。日食jdt。内部的朱尼特。跑步者测试执行。在org上运行(TestExecution.java:38)。日食jdt。内部的朱尼特。跑步者RemoteTestRunner。在org上运行测试(RemoteTestRunner.java:467)。日食jdt。内部的朱尼特。跑步者RemoteTestRunner。在org上运行测试(RemoteTestRunner.java:683)。日食jdt。内部的朱尼特。跑步者RemoteTestRunner。在org上运行(RemoteTestRunner.java:390)。日食jdt。内部的朱尼特。跑步者RemoteTestRunner。main(RemoteTestRunner.java:197)
拜托,有人能帮我吗?
提前谢谢
您似乎无法访问“transactionManager”。如我所见,您进行单元测试,然后我假设您不访问ApplicationContext。xml文件(或声明bean的任何地方)。
对于单元测试,应该通过注释显式地给出bean文件。
这些注释对我有用:
@TransactionConfiguration(transactionManager="transactionManager", defaultRollback=true)
@Transactional
@ContextConfiguration(locations={"classpath:applicationContext.xml",
"classpath:applicationContext-dao.xml",
"classpath:applicationContext-services.xml",
"classpath:/com/xxx/zzz/test/CompanyServiceTest-context.xml"})
public class CompanyServiceTest extends AbstractTransactionalJUnit4SpringContextTests {
private static Log LOG = LogFactory.getLog(CompanyServiceTest.class);
@Autowired
public CompanyService companyService;
@Before
public void setUp() {
System.err.println("Clear the mailboxes...");
Mailbox.clearAll();
}
@Test
public void testCreateCompany() throws IOException, BusinessException, MessagingException {
LOG.info("Creating the company DEMO...");
}
}
问题内容: 我已经用实体管理器配置了两个持久性单元,如下所示: 然后,我将事务管理器配置为 我最初只有一个配置,它被称为“ transactionManager”。Addint一个附加的持久性单元似乎会生成错误。我不明白的一件事,如果我配置了两个持久性单元(每个持久性单元用于一个单独的数据库),是否还需要为每个数据源配置一个单独的实体管理器和一个事务管理器? 我得到的错误如下所示:(我搜索了所有文
我正在尝试一个使用jdbc和Spring连接到数据库的例子,并得到下面的异常。请指教。 例外情况: 主要类: 道类: spring xml:
问题内容: 所以我想尝试http客户端 我的模块信息如下所示 但是我明白了 我真的不明白为什么。我的Java版本是“ build 9-ea + 169”,并且使用了最新版本的IntelliJ idea(2017.1.3)。我调查了这个答案,看来我只需要向文件中添加要求,但是由于某种原因它不起作用。 问题答案: 如果我用作启动参数,对我来说效果很好。 如果您说模块需要它,并不意味着它会被包括在内;默
问题内容: 我正在从参考资料中学习Spring安全性。发布3.1.2.RELEASE。如前所述,我已经像这样配置了标签 security-context.xml web.xml security-servlet.xml 但是在启动应用程序时出现此异常。如果我删除安全配置,我的Spring Web应用程序可以正常工作。我在stackoverflow中也遇到了同样的问题。但是没有运气。 问题答案: 我
我正在从参考资料中学习spring security。版本3.1.2。释放如中所述,我已经像这样配置了安全性:http security-context.xml web.xml 安全servlet。xml 但我在启动应用程序时遇到了这个异常。如果我删除了安全配置,我的spring web应用程序就会正常工作。我在stackoverflow中也遇到过同样的问题。但运气不好。
我有以下try块: 我想从捕获潜在的错误。经过反复试验,我能够生成一个潜在错误列表,这些错误可以通过打印它们的类型(e)由触发。__name__值: 但是如果我尝试将我的except语句从修改为,我将得到一个错误,即未定义。 我尝试定义一个类扩展为它,大多数教程/问题在这里建议,基本上: 现在这个变量已被识别,但由于我无法控制将引发的错误,因此我无法在我的初始try块中真正引发该异常。 理想情况下