gpt4 book ai didi

java - 测试运行完成后,DropwizardServiceRule 抛出 NullPointerException

转载 作者:太空宇宙 更新时间:2023-11-04 06:54:18 25 4
gpt4 key购买 nike

我只是不明白为什么 DropwizardServiceRule 突然开始在测试完成时抛出错误。错误如下:

java.lang.NullPointerException
at com.yammer.dropwizard.testing.junit.DropwizardServiceRule$1.evaluate(DropwizardServiceRule.java:40)
at org.junit.rules.RunRules.evaluate(RunRules.java:18)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
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:606)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

这是我初始化规则的方法:

@ClassRule
public static final DropwizardServiceRule<RestServiceConfiguration> RULE = TestHelper.getDropwizardStartUpRule();

我的 TestHelper 看起来像这样:

public static DropwizardServiceRule<RestServiceConfiguration> getDropwizardStartUpRule()
{
return new DropwizardServiceRule<RestServiceConfiguration>(RestService.class,
Resources.getResource("rest-test.yml").getPath());
}

我检查了 DropwizardServiceRule 代码,似乎 NullPointer 是从这里抛出的:

@Override
public Statement apply(final Statement base, Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
startIfRequired();
try {
base.evaluate();
} finally {
jettyServer.stop();
}
}
};

感谢所有帮助!

最佳答案

此错误可能会产生误导,通常根本原因是设置 ServiceRule 时遇到的问题,例如:

  • 无法找到或未正确解析 yml 文件。
  • 用作服务配置一部分的类之一会查找单独的配置文件(例如 Shiro .ini),但无法找到或读取该文件。

在处理堆栈中显示的特定 NPE 之前,请先检查是否存在任何这些问题。

关于java - 测试运行完成后,DropwizardServiceRule 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22948640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com