[英]Jersey Configuration Not identifying service and dao classes
這是我的球衣配置類
@ApplicationPath("services")
public class JerseyApplication extends ResourceConfig{
public JerseyApplication() {
packages("com.ems");
register(EmployeeService.class);
}
}
這里的employeeService
autowiring
給出了一個空指針異常
@Path("/ems")
@Component
public class EmployeeRestController {
@Autowired
private EmployeeService employeeService;
@GET
@Path("/employees")
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public List<Employee> getEmployees() {
return employeeService.getEmployees();
}
}
我已經嘗試了所有操作在我的employeeServiceImpl
我有@service注釋仍然無法正常工作。
要使用內置的DI框架(HK2)配置依賴項注入,您應該使用AbstractBinder
,如在Jersey 2.0的依賴項注入中的一些回答中所述。
@ApplicationPath("services")
public class JerseyApplication extends ResourceConfig {
public JerseyApplication() {
packages("com.ems");
register(new AbstractBinder() {
@Override
protected void configure() {
bind(EmployeeService.class)
.to(EmployeeService.class)
.in(Singleton.class);
}
});
}
}
其次,您不使用@Autowired
批注。 該批注專門用於Spring。 對於使用Jersey進行標准注入,只需使用@Inject
批注。 還要刪除@Component
注釋,因為這也適用於Spring。
順便說一句,如果您確實想將Spring與Jersey集成在一起,則應該閱讀為什么和如何將Spring與Jersey一起使用 。 它將分解您需要了解的有關集成兩個框架的知識。
您應該注冊控制器而不是服務類。 樣品
@ApplicationPath("services")
public class JerseyApplication extends ResourceConfig{
public JerseyApplication() {
packages("com.ems");
register(EmployeeRestController.class);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.