zcl*_*ark 5 java spring annotations dependency-injection jersey
我正在尝试将服务注入使用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 (scrapIntermediate == null) {
log.info("scrapIntermediate is null...");
}
if (jsonTestService != null) {
jsonTestService.sendUpdate();
} else {
log.info("jsonTestService is null...");
}
}
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
更新:
web.xml(泽西岛)
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>EDAS</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
尝试
<servlet-class>
com.sun.jersey.spi.spring.container.servlet.SpringServlet
</servlet-class>
Run Code Online (Sandbox Code Playgroud)
您还需要contextConfigLocation <context-param>,但我假设您已经有了。有关设置的更多详细信息,请参阅此处
正如 matt b 所建议的那样,spring 实例化了你的对象,但是 Jersey 对 spring 不了解,并再次实例化它们本身。当您使用它时,SpringServlet它应该找到 spring 应用程序上下文。
也就是说,spring-mvc 提供对 RESTful 服务的支持,这与 JAX-RS 非常相似。你也可以尝试一下。
| 归档时间: |
|
| 查看次数: |
6220 次 |
| 最近记录: |