Acesso a objetos externos na classe Jersey Resource
Tenho o cenário em que tenho o seguinte servidor jetty incorporado:
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();
e tem a seguinte classe de recurso (usando a estrutura de 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");
}
}
Aqui na minha classe de recursos, quero acessar um objeto "myobj". alguém pode sugerir como eu posso acessá-lo? porque a classe de recurso é chamada diretamente pela estrutura.
[editar] Basicamente, quero saber como injetar qualquer objeto na classe de recurso?
[Editar
Tentei o seguinte:
pkgrc.getSingletons().add(
new SingletonTypeInjectableProvider<Annotation, InjectZk>(
InjectZk.class, new InjectZk(this.zooKeeper)) {
});
seguinte é a classe de provedor
@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;
}
}
e estou usando-o na classe de recurso como:
@Context
InjectZk zk;
Estou recebendo o seguinte erro ao executar o servidor:
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
Alguma sugestão? (BTW, estou usando o cais incorporado)