# GWT Service Failure



## saölfdj (4. Jan 2013)

Hallo 

Hab ein kleines Problem und zwar hab ich eine Maven-GWT Anwendung und möchte
RPC verwenden, nur leider schlägt mein callback immer Fehl.

Mein Button wenn ich Klicke:

```
AsyncCallback<List<String>> callback = new AsyncCallback<List<String>>() {
	public void onFailure(Throwable caught) {
				
	}
			
	public void onSuccess(List<String> result) {
		addToTable(result);
	}
};

searchService.doSearch(callback);
```

Die Fehlermeldung:

```
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/sara2lightWebclient/
      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
```

Hat da jemand Ahnung was da los ist?


----------



## Ullenboom (5. Jan 2013)

Vorschlag: Mit Eclipse kannst du ein einfaches GWT-Beispiel entwickeln, das schon RPC nutzt. Dann hast du schon mal funktionierenden Code. Von dort kannst du richtig Maven gehen.


----------



## saölfdj (5. Jan 2013)

Hi,

bezüglich der Kombination von Maven und GWT gibt es keine Probleme. Klar die gab es, wie bei jedem anderen auch aber diese Probleme sind schon lange Geschichte 

Das Programm an sich läuft rund. Bis auf das, das ich eben nicht verstehe, warum ich einen 404
Error bekomme und wie das Zustande kommen kann, da mir die internen Mechanismen von GWT
nicht ganz klar sind.

Hatte beim letzten Post vergessen zu erwähnen, dass diese Fehlermeldung im onFailure() von
meinem Callback ausgespuckt wird. 

Die doSearch(callback) wird aufgerufen aber dann knallt es


----------



## saölfdj (5. Jan 2013)

Hi nochmal,

ich poste mal meine SearchServiceImpl. Denn mir ist aufgefallen,
dass das Ding anscheinend doch gar nicht aufgerufen wird.
Keines meiner System.outs wird jedenfalls ausgegeben:


```
private SearchServiceAsync searchService = GWT.create(SearchService.class);

public class SearchServiceImpl extends RemoteServiceServlet implements SearchService {
	private static final long serialVersionUID = 1L;
	// Schnittstelle zur Datenbank eines anderen Modules
	private ISearch search = null;

	public List<String> doSearch(String keyWords, Coordinate start, Coordinate end) {
		System.out.println("doSearch impl");
		LonLat lowerLeft = new LonLat(start.getLongitude(), start.getLatitude());
		System.out.println(lowerLeft.toString());
		LonLat upperRight = new LonLat(end.getLongitude(), end.getLatitude());
		System.out.println(upperRight.toString());
		
		try {
			search = new SearchController(keyWords, lowerLeft, upperRight);
			System.out.println("search instantiated");
		} catch (ClassNotFoundException e1) {
			e1.printStackTrace();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		
                // eine eigene notwendige implementierung von swing
		List<de.myPackage.model.String> temp = null;
		
		try {
			temp = search.doSearch();
			System.out.println("search.doSearch() done");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
                // i have to map my String to the java String
		return map(temp);
	}
	
	/**
	 * 
	 */
	private List<String> map(List<de.myPackage.model.String> results) {
		// uninteressanter und höchste geheimer code xD
	}
```

Wie gesagt, nicht einmal das erste System.out wird aufgerufen.


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


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


----------



## saölfdj (5. Jan 2013)

Also er meckert ja an Folgendem:


```
404 - POST /myProject/search (127.0.0.1) 1412 bytes
```

Heißt das nun, dass er das hier nicht finden kann, was ja als "search" definiert ist:


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

Wenn ja, Warum? Wenn es nicht daran liegt, was könnte es dann sein?


----------

