gpt4 book ai didi

java - gwt guice 注入(inject)远程 servlet。未找到错误404

转载 作者:太空宇宙 更新时间:2023-11-04 08:19:34 24 4
gpt4 key购买 nike

我想在远程 servlet 中使用 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

<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) {}

}

问题出在哪里?谢谢。

最佳答案

参见Scopes.java

方法 isSingleton 已添加到 2.1(当前为 3.0)。检查您的安装(可能您使用 guice 2.0)

关于java - gwt guice 注入(inject)远程 servlet。未找到错误404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9800097/

24 4 0
文章推荐: java - struts框架中的AppFuse密码管理
文章推荐: html - 根据其屏幕位置,将子