我正在尝试将服务注入使用Jersey的Rest类.
无论我尝试注入此类的内容是什么或如何在运行时都显示为null.查看日志文件显示在初始化Web应用程序时调用setJsonTestService,此时它不为null.但是,当稍后通过对此类的PUT请求访问它时,它为空.
我完全不知所措.
这个类看起来像这样:
@Named
@Path("JsonTest")
public class JsonTest {
@Context
Request request;
@Context
UriInfo uriInfo;
protected final Logger log = Logger.getLogger(getClass());
private JsonTestService jsonTestService;
@Autowired
public void setJsonTestSerivce(JsonTestService jsonTestService) {
log.info("Setting JsonTestService.");
if (jsonTestService == null) {
log.info("JsonTestService is null at injection");
}
this.jsonTestService = jsonTestService;
}
@Inject
public ScrapIntermediate scrapIntermediate; // just a plain empty class with an is true method
@PUT
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
public void putJson(@PathParam("id") String id) {
log.info("Putting some json at " + id);
if …Run Code Online (Sandbox Code Playgroud) 我一直在尝试为我的DAO创建一个使用Hibernate的JUnit测试,并通过我的applicationContext.xml文件中的Spring链接到数据库.
添加时仅发生错误:
@RunWith(SpringJUnit4ClassRunner.class)
Run Code Online (Sandbox Code Playgroud)
否则我得到partDao的空指针异常,这是预期的,因为它没有链接.
通常情况下,我只是说废弃它并继续开发没有JUnit测试,但我更愿意在我的项目中开始使用它.
这是错误:
Testsuite: SpecBuilder.webapp.dao.PartDaoTest
Exception in thread "main" java.lang.NoSuchMethodError: org.junit.runner.notification.RunNotifier.testAborted(Lorg/junit/runner/Description;Ljava/lang/Throwable;)V
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:146)
at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:59)
at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:52)
at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)
at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)
at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:50)
at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:515)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1031)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:888)
Test SpecBuilder.webapp.dao.PartDaoTest FAILED (crashed)
/home/zclark/Projects/SpecBuilder/nbproject/build-impl.xml:798: Some tests failed; see details above.
BUILD FAILED (total time: 2 seconds)
Run Code Online (Sandbox Code Playgroud)
这是我的测试类:
package SpecBuilder.webapp.dao;
import org.junit.Test;
import static org.junit.Assert.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.junit.runner.RunWith;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.ContextConfiguration;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="{applicationContext.xml}")
public class PartDaoTest {
@Autowired
PartDao partDao;
public PartDaoTest() {}
@Test …Run Code Online (Sandbox Code Playgroud)