У меня довольно простое приложение GWT, настроенное с использованием GWT-RPC и Guice. На данный момент я обслуживаю две вещи: службу GWT-RPC и апплет, который принимает заказы. Это выглядит примерно так:Использование Restet with Guice DI & GWT
public class MyGuiceModule extends ServletModule {
@Override
protected void configureServlets() {
serve("/path/to/service").with(MyGWTServiceImpl.class);
serve("/path/to/upload").with(MyUploadServlet.class);
//bunch of bindings follow...
}
}
я хотел бы быть в состоянии обслуживать Restlet ресурсы или Restlet приложения из одного приложения и настроить их в моем Guice модуле, а не web.xml. Раньше я настраивал REST для поддержки приложений GWT с помощью Restlet, но не использовал DI, поэтому я немного потерял, как это должно работать.
ета: вот мой web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<filter>
<filter-name>guiceFilter</filter-name>
<filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>guiceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>com.whatever.MyGuiceBootstrap</listener-class>
</listener>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>home.html</welcome-file>
</welcome-file-list>
</web-app>
обновление
Это решает проблему, ура!
bind(ServerServlet.class).in(Singleton.class);
Map<String,String> initParams = new HashMap<String,String>();
initParams.put("org.restlet.application", "path.to.your.RestletApplication");
serve("/api/*").with(ServerServlet.class,initParams);
Update2
Наконец пошел раствором я адаптировано из http://hpehl.info/google-appengine-restlet-guice.html, который позволяет мне с помощью инъекции в пределах моих ресурсов и одной линии, чтобы связать в guicemodule.
Не могли бы вы предоставить свой 'web.xml', чтобы попасть в вашу проблему. Я не могу представить, что именно вы хотите настроить. –
На данный момент web.xml просто загружает guiceContextListener. Затем Guice делегирует правильному сервлету (как настроено в MyServletModule), я добавлю его к вышеуказанному. То, что я хочу сделать, добавляет структуру отдыха на пути (say/api), используя тот же метод. Я думаю, что это возможно с майкой, но я предпочел бы использовать реслинг, если это возможно. Спасибо, что посмотрели! – tom