簡體   English   中英

Servlet NOT_FOUND(GWT + AppEngine)

[英]Servlet NOT_FOUND (GWT+AppEngine)

我想開發我的第一個AppEngine應用程序,它也將使用GWT。 由於我沒有GWT和AppEngine的經驗,我開始使用GWT網站上的教程,在成功完成入門后,我開始研究http://code.google.com/webtoolkit/doc/latest/tutorial/ appengine.html

但我遇到了一個問題,我不知道為什么:)

我正在嘗試檢查用戶是否已登錄,例如“使用用戶服務個性化應用程序”部分。

但是當我運行代碼本身時,我收到一個錯誤:

<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 /parkmeweb/login. Reason:
<pre>    NOT_FOUND</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>                                                
</body>
</html>

這是我的文件:

login服務

@RemoteServiceRelativePath("login")
public interface LoginService extends RemoteService {
  public LoginInfo login(String requestUri);
}

LoginServiceAsync

public interface LoginServiceAsync {
  public void login(String requestUri, AsyncCallback<LoginInfo> async);
}

LoginServiceImpl

public class LoginServiceImpl extends RemoteServiceServlet implements
        LoginService {

    public LoginInfo login(String requestUri) {
        UserService userService = UserServiceFactory.getUserService();
        User user = userService.getCurrentUser();
        LoginInfo loginInfo = new LoginInfo();

        if (user != null) {
            loginInfo.setLoggedIn(true);
            loginInfo.setEmailAddress(user.getEmail());
            loginInfo.setNickname(user.getNickname());
            loginInfo.setLogoutUrl(userService.createLogoutURL(requestUri));
        } else {
            loginInfo.setLoggedIn(false);
            loginInfo.setLoginUrl(userService.createLoginURL(requestUri));
        }
        return loginInfo;
    }

}

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>

  <!-- Servlets -->

  <servlet>
    <servlet-name>loginService</servlet-name>
    <servlet-class>com.parkme.parkmeweb.server.LoginServiceImpl</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>loginService</servlet-name>
    <url-pattern>/parkmeweb/login/</url-pattern>
  </servlet-mapping>

  <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>ParkmeWeb.html</welcome-file>
  </welcome-file-list>

</web-app>

我從onModuleLoad調用了所有這些:

public void onModuleLoad() {
    LoginServiceAsync loginService = GWT.create(LoginService.class);
    loginService.login(GWT.getHostPageBaseURL(), new AsyncCallback<LoginInfo>() {
      public void onFailure(Throwable error) {
             //this is where error is thrown
          Window.alert(error.getMessage());
      }

      public void onSuccess(LoginInfo result) {
        loginInfo = result;
        if(loginInfo.isLoggedIn()) {
          return;
        } else {
          loadLogin();
        }
      }
    });
}

只是看着這個,我看不出任何問題,我應該在其他地方尋找問題,但我想聽聽一些錯誤的想法。

處理程序是/ parkmweweb / login /,但是你正在訪問/ parkmeweb / login - 沒有尾部斜杠。

面對同樣的問題。 但我試圖將其部署到谷歌。 servlet是可訪問的,沒問題。 它似乎是GWT + Eclipse的一個問題,不確定究竟在哪里。 希望他們能解決它,其他明智的測試很難。

我剛剛重啟了Eclipse並解決了這個問題。

當我從jre1.7切換到jre1.6兩個x64時問題就開始了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM