小编zcl*_*ark的帖子

Jersey和spring集成 - bean Injections在运行时为null

我正在尝试将服务注入使用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)

java spring annotations dependency-injection jersey

5
推荐指数
1
解决办法
6220
查看次数

如何在Spring2.5中使用JUnit4注释?

我一直在尝试为我的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)

spring hibernate junit4

4
推荐指数
1
解决办法
6890
查看次数