Java hudson中的junit故障-swterror-无更多句柄

Java hudson中的junit故障-swterror-无更多句柄,java,junit,swt,eclipse-rcp,hudson,Java,Junit,Swt,Eclipse Rcp,Hudson,我正在尝试在hudson服务器中构建我的UI项目。我在哈得逊遇到了junit的失败。当我在本地构建项目时,构建是成功的。我试图在哈德逊执行清理和部署目标(maven 2.2.1) Hudson中的错误消息: 错误消息 没有把手了 堆栈跟踪 位于org.eclipse.swt.swt.error(swt.java:4308) 位于org.eclipse.swt.swt.error(swt.java:4197) 位于org.eclipse.swt.swt.error(swt.java:4168) 位

我正在尝试在hudson服务器中构建我的UI项目。我在哈得逊遇到了junit的失败。当我在本地构建项目时,构建是成功的。我试图在哈德逊执行清理和部署目标(maven 2.2.1)

Hudson中的错误消息:

错误消息 没有把手了 堆栈跟踪 位于org.eclipse.swt.swt.error(swt.java:4308) 位于org.eclipse.swt.swt.error(swt.java:4197) 位于org.eclipse.swt.swt.error(swt.java:4168) 位于org.eclipse.swt.widgets.Widget.error(Widget.java:468) 位于org.eclipse.swt.widgets.Control.createHandle(Control.java:704) 位于org.eclipse.swt.widgets.Label.createHandle(Label.java:199) 位于org.eclipse.swt.widgets.Control.createWidget(Control.java:744) 位于org.eclipse.swt.widgets.Control.(Control.java:112) 位于org.eclipse.swt.widgets.Label。(Label.java:101) 位于com.cerner.revenuecycle.ui.common.themes.Components.createLabel(Components.java:161) 在com.cerner.financials.ui.chargeentry.internal.麻醉剂.AnesthesiaComposite.renderCalculationGroup(AnesthesiaComposite.java:627) 在com.cerner.financials.ui.chargeentry.internal.麻醉.AnesthesiaComposite.renderRightComposite(AnesthesiaComposite.java:487)上 在com.cerner.financials.ui.chargeentry.internal.麻醉.AnesthesiaComposite.render(AnesthesiaComposite.java:253) 在com.cerner.financials.ui.chargeentry.internal.AnesthesiaComposite.AnesthesiaComposite.(AnesthesiaComposite.java:174) 在com.cerner.financials.ui.chargeentry.internal.麻醉.AnesthesiaCompositeTest.setUp(AnesthesiaCompositeTest.java:98) 在com.cerner.engineering.pde.test.EclipseTestRunner.run(EclipseTestRunner.java:313) 在com.cerner.engineering.pde.test.MultiTestRunnerApplication.runOneTest(MultiTestRunnerApplication.java:191)上 位于com.cerner.engineering.pde.test.MultiTestRunnerApplication.runTests(MultiTestRunnerApplication.java:138) 位于com.cerner.engineering.pde.test.MultiTestRunnerApplication.run(MultiTestRunnerApplication.java:37) 位于org.eclipse.equinox.internal.app.eclipseeappcontainer.callMethodWithException(eclipseeappcontainer.java:587) 在org.eclipse.equinox.internal.app.eclipseeapphandle.run上(eclipseeapphandle.java:198) 位于org.eclipse.core.runtime.internal.adapter.eclipseeappluncher.runApplication(eclipseeappluncher.java:110) 位于org.eclipse.core.runtime.internal.adapter.eclipseeappluncher.start(eclipseeappluncher.java:79) 位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:344) 位于org.eclipse.core.runtime.adapter.EclipseStarter.run(EclipseStarter.java:179) 位于org.eclipse.core.launcher.Main.invokeFramework(Main.java:336) 位于org.eclipse.core.launcher.Main.basicRun(Main.java:280) 位于org.eclipse.core.launcher.Main.run(Main.java:977) 位于org.eclipse.core.launcher.Main.Main(Main.java:952)


我在谷歌上搜索了很多,发现了一些人们有同样问题的链接。建议在Hudson服务器中启用“在构建时运行XVnc”。但我的Hudson服务器运行的是windows server 2008。我不认为,我将需要Vnc。请帮我解决这个问题。谢谢。

假设您的JUnit测试设置的UI创建的UI元素(=句柄)超出了服务器的处理能力,则有两个选项可以解决您的问题:

  • 注意处理你的小部件:这是一条一般规则 如果你创建了一个小部件,你就是处理它的人 (处置方法)
  • 增加Windows服务器的句柄限制 2008年可以抽签。因为我不熟悉Windows Server 2008,所以我 无法告诉您必须修改哪个注册表项。 Windows通常对整个进程和每个进程的句柄都有限制