Я хотел бы использовать Guice в своем удаленном сервлете, но столкнулся с этой досадной ошибкой.
Перед запуском моего проекта уже есть ошибка.
ВНИМАНИЕ: Ошибка запуска обработчиков
java.lang.NoSuchMethodError: com.google.inject.Scopes.isSingleton (Lcom / google / inject / Binding;) Z
на com.google.inject.servlet.ServletDefinition.init (ServletDefinition.java:103)
на com.google.inject.servlet.ManagedServletPipeline.init (ManagedServletPipeline.java:82)
на com.google.inject.servlet.ManagedFilterPipeline.initPipeline (ManagedFilterPipeline.java:102)
на com.google.inject.servlet.GuiceFilter.init (GuiceFilter.java:172)
на org.mortbay.jetty.servlet.FilterHolder.doStart (FilterHolder.java:97)
на org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50)
на org.mortbay.jetty.servlet.ServletHandler.initialize (ServletHandler.java:662)
на org.mortbay.jetty.servlet.Context.startContext (Context.java:140)
на org.mortbay.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1250)
на org.mortbay.jetty.handler.ContextHandler.doStart (ContextHandler.java:517)
на org.mortbay.jetty.webapp.WebAppContext.doStart (WebAppContext.java:467)
на org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50)
на org.mortbay.jetty.handler.HandlerWrapper.doStart (HandlerWrapper.java:130)
на org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50)
на org.mortbay.jetty.handler.HandlerWrapper.doStart (HandlerWrapper.java:130)
на org.mortbay.jetty.Server.doStart (Server.java:224)
на org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50)
на com.google.appengine.tools.development.JettyContainerService.startContainer (JettyContainerService.java:191)
на com.google.appengine.tools.development.AbstractContainerService.startup (AbstractContainerService.java:239)
на com.google.appengine.tools.development.DevAppServerImpl.start (DevAppServerImpl.java:146)
на com.google.appengine.tools.development.gwt.AppEngineLauncher.start (AppEngineLauncher.java:97)
на com.google.gwt.dev.DevMode.doStartUpServer (DevMode.java:509)
на com.google.gwt.dev.DevModeBase.startUp (DevModeBase.java:1068)
на com.google.gwt.dev.DevModeBase.run (DevModeBase.java:811)
на com.google.gwt.dev.DevMode.main (DevMode.java:311)
После запуска проекта.
404
<code><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 NOT_FOUND</title>
</head>
<body>
<h2>HTTP ERROR: 404</h2>
<p>Problem accessing /mercado/login. Reason:
<pre> NOT_FOUND
Работает на причале: //
Вот мой код.
<listener>
<listener-class>ph.com.mercado.server.ioc.GuiceServletListener</listener-class>
</listener>
<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>
public class GuiceServiceModule extends AbstractModule {
@Override
protected void configure() {
bind(LoginServiceImpl.class).in(Singleton.class);
public class GuiceServletListener extends GuiceServletContextListener{
@Override
public Injector getInjector() {
return Guice.createInjector(new GuiceServletModule(), new GuiceServiceModule());
}
public class GuiceServletModule extends ServletModule {
@Override
protected void configureServlets() {
serve("/mercado/login").with(LoginServiceImpl.class);
@RemoteServiceRelativePath("login")
public interface LoginService extends RemoteService {
public LoginInfo loginGoggle(String requestUri);
public class LoginServiceImpl extends RemoteServiceServlet implements
LoginService {
@Inject
private UserDao userDao;
@Override
public LoginInfo loginGoggle(String requestUri) {}
}
В чем проблема? Спасибо.