autowire在webservice中给出null调用

时间:2015-12-03 17:33:09

标签: java spring web-services dependency-injection

我使用spring依赖注入,我的项目中有以下类 - UserService / UserServiceImpl - RequestHandler

我将Webservice请求发送到RequestHandler类并调用createPostRequest()方法,但每次输出为 - >说Null

@controller("handler")
@Path("/UserManagement")
public class RequestHandler {

    @Autowired
    private UserService service;

    @PermitAll
    @POST
    @Path("/save")
    public String createPostRequest() {
        if(service == null) {
            System.out.println("Say Null");
        }else{
            System.out.println("Not Null");
            service.printName();
        }
        return "success";
    }

}
public interface UserService {

    void saveUser(final String username);
}
@Service("service")
public class UserServiceImpl implements UserService {

    public void printName(){
      System.out.println("user serviceImpl exec");
    }
}
application-context.xml

    <context:component-scan base-package="com.xxxxxxxx.xxx" />

是否有扫描依赖项。

如果我用以下方式检查另一种主要方法,它会正常工作。输出 - &gt;用户serviceImpl exec

public static void main(String[] args) {

        ApplicationContext context = new ClassPathXmlApplicationContext("core-context.xml");      

        final RequestHandler userService = context.getBean("handler", RequestHandler.class);
        userService.createPostRequest();
    }

我通过Web服务调用RequestHandler类中的方法createPostRequest() - localhost:8080 / Test / UserManagement / save 它执行并说服务对象为空。 并给出输出 - &gt;说Null

我想通过Web服务执行该方法。我用来通过网络服务打电话的方式是错误的还是我错过的?提前谢谢。

1 个答案:

答案 0 :(得分:0)

你试过了吗?

<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>

而不是

<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>

我认为spring servlet可以设置spring注释属性。这是一个理论。

相关问题