Я борюсь с получением Guice Servlet, работающего над настройкой того, как Jetty обслуживает веб-запросы в этом простом случае для статических страниц.Использование Guice Servlet с Jetty для сопоставления путей к сервлетам без использования web.xml
Я создал простое приложение, которое должно отображать два разных запроса: один с использованием GuiceServlet, другой нет. Последнее работает, а отображаемый образ GuiceServlet возвращает ошибку 404.
Любые советы? Я использую: JDK 1.7.0_15; eclipse.jetty.jetty-servlet 8.1.9.v20130131; guice-servlet 3.0. Благодарю.
public class Main {
public static void main(String... args) {
Guice.createInjector().getInstance(Main.class).start();
}
public void start() {
Server server = new Server(8080);
ServletContextHandler handler = new ServletContextHandler(server, "/", ServletContextHandler.SESSIONS);
handler.addEventListener(new MyGuiceServletConfig());
handler.addServlet(MyServlet.class, "/non-guice");
server.setHandler(handler);
try {
server.start();
server.join();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class MyGuiceServletConfig extends GuiceServletContextListener {
@Override
protected Injector getInjector() {
return Guice.createInjector(new ServletModule() {
@Override
protected void configureServlets() {
System.out.println("MyGSC->getInjector->configureServlets"); //I'm seeing this in the console...
serve("/guice").with(MyServlet.class);
}
});
}
}
@Singleton
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().print("Hello!\nYour path is: " + request.getServletPath());
}
}
Помимо этого, что является лучшим способом создания различных форсунок? У меня есть основной (..) структурированный таким образом, чтобы я мог подключать другие модули, оставляя MyServletModule указанным в MyGuiceServletConfig, как я где-то видел - это правильно?
Как представляется, это нормально для обслуживания сервлета, добавленного нормально («/ non-guice») без этого? Возможно, я неправильно назвал этот вопрос. – neuronotic
Проблема, с которой я столкнулась, заключается в том, что я могу служить сервлетам стиля HelloWorld, если я их программно программирую за пределами Guice, но тот, который указан через Guice Servlet, не работает. – neuronotic
О, в этом случае правильно настройте guiceFilter ... http://code.google.com/p/google-guice/wiki/Servlets –