java.lang.IllegalStateException: 已安装 InitialContextProperties

java.lang.IllegalStateException: Already installed InitialContextProperties

我正在尝试 运行 使用 TestNG 和 Eclipse 进行单元测试(在单元测试中右键单击 -> 运行 作为 TestNg 测试)。测试在初始阶段立即失败。我认为这与 testng 正在加载两个不同的数据源有关,但我不知道如何解决。这是堆栈跟踪:

May 15, 2015 11:52:32 AM  org.jboss.seam.microcontainer.TransactionManagerFactory getTransactionManager
INFO: starting JTA transaction manager
May 15, 2015 11:52:32 AM org.jboss.seam.microcontainer.DataSourceFactory getDataSource
INFO: starting Datasource at JNDI name: java:/datasource1
May 15, 2015 11:52:32 AM org.jboss.seam.microcontainer.DataSourceFactory getDataSource
INFO: starting Datasource at JNDI name: java:/DefaultDS
FAILED CONFIGURATION: @BeforeClass init
java.lang.RuntimeException: java.lang.IllegalStateException: Already installed InitialContextProperties
at com.pinncorp.mock.SeamTest.startJbossEmbeddedIfNecessary(SeamTest.java:223)
at org.jboss.seam.mock.AbstractSeamTest.startSeam(AbstractSeamTest.java:915)
at com.pinncorp.mock.SeamTest.init(SeamTest.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:17

提前致谢...

我建议请清除所有构建路径和 testng 库,清理您的项目并重新开始,它肯定会起作用。如果不完全在不同的工作空间中尝试。

我收到以下错误:

java.lang.IllegalStateException: jboss.web.deployment:war=/my_app is already installed

这与您的不完全相同,但非常相似。

我所做的是在我的服务器 (JBOSS) 的 /deploy 文件夹中放置两个 .ear 文件。更具体地说,我通过将“_backup”附加到其名称来重命名现有的 .ear,然后粘贴新的 .ear。解决方案是在部署文件夹中只保留一个 .ear 文件。

这可能不是您问题的解决方案,但我认为它可能会帮助 google 遇到同样错误的其他人。