Servlet Problem bei gwt rpc

Moin moin,

ich arbeite mich gerade in das gwt ein und probiere gerade eine ganz einfache server - client kommunikation herzustellen. Allerdings funktioniert die Übertragung einfacht nicht. Auch nach einigem googlen weiß ich nicht, was an diesem Quellcode nicht stimmen soll.

Als Ausgabe erhalte ich:
com.google.gwt.user.client.rpc.StatusCodeException: 404
HTTP ERROR: 404

NOT_FOUND

RequestURI=/com.sanguine.coloniae.Main/coloniae

Powered by Jetty://


ich hoffe sehr das mir jemand helfen kann.

lg Peter

Java:
package com.sanguine.coloniae.client;

import com.google.gwt.user.client.rpc.RemoteService; 
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("coloniae")
public interface ColoniaeService extends RemoteService 
{
	public String sendLogin(String user, String passoword);
}
Java:
package com.sanguine.coloniae.client;

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface ColoniaeServiceAsync {

	void sendLogin(String user, String passoword, AsyncCallback<String> callback);

}
Java:
package com.sanguine.coloniae.server;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.sanguine.coloniae.client.ColoniaeService;
@SuppressWarnings("serial")
public class Server extends RemoteServiceServlet implements ColoniaeService{

	public String sendLogin(String user, String passoword) 
	{
		if(user.equals("Thraex") && passoword.equals("123"))
		{
			return "login erfolgreich";
		}
		else
		{
			return "fehler beim login";
		}
	}

}
Java:
public class Main implements EntryPoint 
{
	public void onModuleLoad() 
	{
		ColoniaeServiceAsync svc = (ColoniaeServiceAsync) GWT.create(ColoniaeService.class);   

        AsyncCallback callback = new AsyncCallback()  
        {  
            public void onSuccess (Object result)  
            {  
                RootPanel.get().add(new HTML(result.toString()));  
            }  
  
            public void onFailure (Throwable ex)  
            {  
                RootPanel.get().add(new HTML(ex.toString()));  
            }  
        };  
  
        svc.sendLogin("Thraex", "123", callback);
	}
}
 
G

gman

Hi,

soweit ich weiß muss man die web.xml auch noch anpassen. Darin
wird dann das Service-Servlet ("Server") registriert.
 
mhh funktioniert immernoch nicht :(
vill ist meine xml fehlerhaft
[XML] <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE web-app (View Source for full doctype...)>
- <web-app>
- <!-- Default page to serve
-->
- <welcome-file-list>
<welcome-file>Main.html</welcome-file>
</welcome-file-list>
- <servlet>
<servlet-name>Server</servlet-name>
<servlet-class>com.sanguine.coloniae.server.Server</servlet-class>
</servlet>
- <servlet-mapping>
<servlet-name>Server</servlet-name>
<url-pattern>/com.sanguine.coloniae.Main/Onlinegame</url-pattern>
</servlet-mapping>
</web-app>[/XML]
 
G

gman

Code:
<url-pattern>/com.sanguine.coloniae.Main/Onlinegame</url-pattern>
Das ist falsch. Probier mal das:

Code:
<url-pattern>/*</url-pattern>
Eventuell musst du das Pattern an den Code aus dem Service-Interface anpassen:

Java:
@RemoteServiceRelativePath("coloniae")
also so:

Code:
<url-pattern>/coloniae</url-pattern>
 
mit
[XML]<url-pattern>/coloniae</url-pattern>[/XML]

klappt es leider nicht.

Vielleicht starte ich auch alles einfach nur falsch ^^

bis jetzt compile ich das Progg einfach und starte dann die vom gwt erstellte html-datei.

Kann es sein das ich so das servlet nicht starte - und wenn das echt mein Fehler ist: wie starte ich dann dieses Servlet? :oops:
 
G

gman

wie starte ich dann dieses Servlet?
Bei GWT gibt es doch diesen Dev-Mode. Der wird in jedem Tutorial beschrieben.
Ich selber nutze das Eclipse-Plugin, da brauch ich das Projekt nur mit der
richtigen GWT-Run-Konfiguration starten ;-)

Wenn du es später auf einem Server laufen lassen willst, brauchst du aber einen
Servlet-Container. Die Server-seitigen Sachen sind ja wieder richtiger Java-Code.
 
erstmal viiieeelen dank bis hier, dass du so geduldig meine (manchmal sinnlosen) Fragen beantwortest.
Mit dem dev-modus kann man sich echt viel zeit sparen ^^.
Jetzt kommt eine andere Fehlermeldung:

HTTP ERROR: 503

SERVICE_UNAVAILABLE

RequestURI=/Main.html

Powered by jetty://

vill liegt es an meiner Main.gwt.xml

[XML]<module>
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.user.theme.standard.Standard"/>
<entry-point class="com.sanguine.coloniae.client.Main"/>
<servlet path="/Onlinegame" class="com.sanguine.coloniae.server.Server" />
</module>
[/XML]

ich vermute mal das
Code:
<servlet path="/Onlinegame" class="com.sanguine.coloniae.server.Server" />
nicht stimmt.
aber was muss sonst dahin? ^^ - aus dem Tutorial von Google werde ich nicht wirklich schlau.
 
ok ich habs jetzt :)
der Fehler lag in meiner web.xml
sie muss so aussehen:
[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>

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

<servlet>
<servlet-name>Server</servlet-name>
<servlet-class>com.sanguine.coloniae.server.Server</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Server</servlet-name>
<url-pattern>/com.sanguine.coloniae.Main/coloniae</url-pattern>
</servlet-mapping>

</web-app>[/XML]

vielen Dank nochmal:toll:
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben