![](/img/trans.png)
[英]Spring - unable to map the servlet. It returns 404 - Not Found
[英]gwt guice injecting remote servlet. Error 404 not found
我想在我的遠程servlet中使用Guice,但是遇到了這個煩人的錯誤。
在運行我的項目之前,已經有一個錯誤。
警告:啟動處理程序java.lang.NoSuchMethodError時出錯:com.google.inject.Scopes.isSingleton(Lcom / google / inject / Binding;)com.google.inject.servlet.ServletDefinition.init(ServletDefinition.java:103)處的Z在com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:102)在com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:82)在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。 org.mortbay.jetty.servlet.Context.startContext(Context.java:140)處的servlet.ServletHandler.initialize(ServletHandler.java:662)org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)在org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)在org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)處的bay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)處在org.mortbay.componentty.AbstractLifeCycle.start(AbstractLifeCycle.java)的org.mortbay.jetty.Server.doStart(Server.java:224)的org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)處: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.gwt.AppEngineLauncher.start(AppEngineLauncher.java:97)上的appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:146),位於com.google.gwt.dev.DevMode上。 com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)的doStartUpServer(DevMode.java:509)com.google.gwt.dev.DevModeBase.run (DevModeBase.java:811),位於com.google.gwt.dev.DevMode.main(DevMode.java:311)
運行項目后。
404
<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</pre></p>
<hr /><i><small>Powered by Jetty://</small></i>
這是我的代碼。
<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) {}
}
似乎是什么問題? 謝謝。
方法isSingleton已添加到2.1(當前為3.0)。 檢查您的安裝(可能您使用的是guice 2.0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.