RPC上的GWT 404错误

RPC上的GWT 404错误,gwt,maven,rpc,gwt-rpc,gwt-maven-plugin,Gwt,Maven,Rpc,Gwt Rpc,Gwt Maven Plugin,我对gwt和rpc有问题。我为我的rpc实现了一个服务: @RemoteServiceRelativePath("search") public interface SearchService extends RemoteService { List<Result> doSearch(String keyWords, Coordinate start, Coordinate end); } public interface SearchServiceAsync {

我对gwt和rpc有问题。我为我的rpc实现了一个服务:

@RemoteServiceRelativePath("search")
public interface SearchService extends RemoteService {
    List<Result> doSearch(String keyWords, Coordinate start, Coordinate end);
}

public interface SearchServiceAsync {
    void doSearch(String keyWords, Coordinate start, Coordinate end, AsyncCallback<List<Result>> callback);
}

public class SearchServiceImpl extends RemoteServiceServlet implements SearchService {
    private static final long serialVersionUID = 1L;
    private ISearch search = null; // interface to my database

    public List<Result> doSearch(String keyWords, Coordinate start, Coordinate end) {
        LonLat lowerLeft = new LonLat(start.getLongitude(), start.getLatitude());
        LonLat upperRight = new LonLat(end.getLongitude(), end.getLatitude());

        try {
            search = new SearchController(keyWords, lowerLeft, upperRight);
        } catch (ClassNotFoundException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        }

        List<de.myPackage.model.Result> temp = null;

        try {
            temp = search.doSearch();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return map(temp);
    }

    private List<Result> map(List<de.myPackage.model.Result> results) {
       ....
    }
}

这是什么意思?我不明白:(

您的
WEB-INF/WEB.xml
中缺少servlet映射:

<servlet>
  <servlet-name>SearchService</servlet-name>
  <servlet-class>de.myPackage.server.SearchServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>SearchService</servlet-name>
  <url-pattern>/search</url-pattern>
</servlet-mapping>

搜索服务
de.myPackage.server.SearchServiceImpl
搜索服务
/搜寻

您可以将其放在web.xml中,或者如果您使用的是Servlet 3.0容器(即不是DevMode,也不是AppEngine)在你的类上应用适当的注释。

你的WEB-INF/WEB.xml中有什么?或者你可能正在使用gwt maven插件的
mergewebxml
mojo和
scanRemoteServiceRelativePathAnnotation
参数?没有,我的WEB.xml中没有任何内容,因为我认为它将由maven自动生成。如果没有-我实际上需要向我的web.xml添加什么?哦,对不起,它没有:(在web应用程序中找不到服务器类'de.myProject.Server.SearchServiceImpl'。相同错误404。如果我使用您发布的链接中的xml部分,pom.xml将不再可解析。您如何运行应用程序?
mvn gwt:run
?或者使用Eclipse的Google插件从Eclipse运行?在后一种情况下,请参阅我从Eclipse运行它。不要这样做知道如何用另一种方式来做吗^^。对于哪种情况,链接是有趣的?对于自编辑web.xml或通过gwt生成它`?在我的pom.xml中找到了一些东西:org.apache.maven.plugins maven clean plugin 2.4.1 src/main/webapp/Application这意味着什么“应用程序”?因为我没有一个名为ApplicationBad practice的文件或目录。千万不要使用
src/
作为目标,这就是
target/
的目的;换句话说,千万不要使用
src/main/webapp
作为GWT(DevMode或编译器)的
-war
。如果你做的事情是正确的,那么在你的POM中就不需要这样的配置。我建议你从一个空的POM开始,或者使用一个更新和/或更好的原型(gwt maven插件的原型不是一个好的开始)
404 - POST /myProject/search (127.0.0.1) 1412 bytes
   Request headers
      Host: 127.0.0.1:8888
      User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
      Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
      Accept-Encoding: gzip, deflate
      Connection: keep-alive
      Referer: http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997
      X-GWT-Permutation: HostedMode
      X-GWT-Module-Base: http://127.0.0.1:8888/myProject/
      Content-Type: text/x-gwt-rpc; charset=utf-8
      Content-Length: 334
      Pragma: no-cache
      Cache-Control: no-cache
   Response headers
      Content-Type: text/html; charset=iso-8859-1
      Content-Length: 1412
<servlet>
  <servlet-name>SearchService</servlet-name>
  <servlet-class>de.myPackage.server.SearchServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>SearchService</servlet-name>
  <url-pattern>/search</url-pattern>
</servlet-mapping>