GWT Guice впрыскивая удаленный сервлет.Ошибка 404 не найдено - PullRequest
1 голос
/ 21 марта 2012

Я хотел бы использовать 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) {}

}

В чем проблема? Спасибо.

1 Ответ

1 голос
/ 21 марта 2012

См. Scopes.java

Метод isSingleton был добавлен в 2.1 (текущий 3.0). Проверьте вашу установку (возможно, вы используете guice 2.0)

...