1
我有,我有以下嵌入的Jetty服務器的情景:訪問外部對象
Server server = new Server(8080);
Context root = new Context(server, "/", Context.SESSIONS);
root.addServlet(
new ServletHolder(
new ServletContainer(
new PackagesResourceConfig(
"edu.mit.senseable.livesingapore.platform.restws.representations"))),
"/");
Myobj myobj = new Myobj(12,13);
server.start();
,並具有以下資源類(使用Jersey框架)
import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/")
public class DataStreams {
@GET
@Path("/datastreams")
@Produces(MediaType.TEXT_PLAIN)
public String getDataStreams() {
return getStreams("text");
}
}
在這裏,我的資源類我想訪問一個對象「myobj」。有人可以建議我如何訪問它?因爲該框架直接調用資源類。
[編輯] 基本上我想知道如何注入任何對象爲資源類?
[編輯]
我嘗試這樣做:
pkgrc.getSingletons().add(
new SingletonTypeInjectableProvider<Annotation, InjectZk>(
InjectZk.class, new InjectZk(this.zooKeeper)) {
});
以下是提供程序類
@Provider
public class InjectZk {
private ZooKeeper zk;
public InjectZk() {
// TODO Auto-generated constructor stub
}
public InjectZk(ZooKeeper zk) {
// TODO Auto-generated constructor stub
this.zk = zk;
}
public ZooKeeper getZk() {
return zk;
}
}
,我使用它的資源類如:
@Context
InjectZk zk;
我正在以下erorr運行的服務器,同時:
SEVERE: Missing dependency for field: edu.mit.senseable.livesingapore.platform.core.components.clientrequest.InjectZk edu.mit.senseable.livesingapore.platform.core.components.clientrequest.DataStreams.zk
2011-09-28 16:18:47.714:/:WARN: unavailable
com.sun.jersey.spi.inject.Errors$ErrorMessagesException
有什麼建議? (順便說一句,我使用的嵌入式碼頭)
您可以推薦一些示例代碼?我很抱歉,我是這個領域的新手,我也使用嵌入式碼頭與球衣 – rinku
,你可以在[這個線程]中找到基本的InjectableProvider實現(http://stackoverflow.com/questions/7121445/how-to-wire-in -a合作者 - 到 - 一個汗布資源/ 7122265#7122265) –
看起來像帕維爾編輯我的迴應,並添加示例代碼 - 謝謝你,帕維爾 –