【发布时间】:2015-08-10 19:02:53
【问题描述】:
在尝试注入资源的依赖项时,我在将 Jersey 与 Jetty 连接时遇到了麻烦。我正在做的是:
public class MyApplication extends ResourceConfig {
public MyApplication() {
register(new MyBinder());
}
}
我的活页夹简化了:
public class MyBinder extends AbstractBinder {
@Override
protected void configure() {
bind(ManagerImpl.class).to(Manager.class);
}
}
我的资源也简化了:
@Path("test")
public class MyResource {
@Inject
Manager manager;
...
}
我试过这个把所有的东西连接在一起:
ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
ServletContainer jerseyServletContainer = new ServletContainer(new MyApplication());
ServletHolder jerseyServletHolder = new ServletHolder(jerseyServletContainer);
jerseyServletHolder.setInitParameter("jersey.config.server.provider.classnames", MyResource.class.getCanonicalName());
servletContextHandler.setContextPath("/");
servletContextHandler.addServlet(jerseyServletHolder, "/*");
Server server = new Server(threadPool);
ServerConnector connector = new ServerConnector(server);
connector.setPort(httpPort);
server.setConnectors(new Connector[]{connector});
server.setHandler(servletContextHandler);
server.start();
但是我一直收到 HTTP ERROR: 404
有什么办法可以对其进行排序吗?
谢谢
【问题讨论】:
-
您的请求网址是什么?
-
我有一个类似的项目,但它不使用你正在做的注入 here 也许它可以帮助你前进。
-
0.0.0.0:8800/test?some=stuff,但是我发现了 dropwizard,它基本上解决了我的所有问题,实现了我的目标。甚至集成Guice进行注射。 codingricky.com/dropwizard-and-guice-integration
-
太棒了。我应该建议...我已经使用 dropwizard 和 guice 几年了,并且喜欢它。 Metrics 库是不可或缺的。