Estou precisando de uma ajuda na comunicação RPC, já tentei várias vezes....pelo o Eclipse e não estou conseguindo, estou seguindo as aulas do neri, onde ele ensina a comunicação rpc com um sistema de login bem simples porém no netbeans, eu segui várias vezes as aulas, mas sempre caiu no mesmo erro, já peguei um video no you tube em espanhol onde o cara ensina no proprio eclipse o rpc, mas cheguei no mesmo erro que dá pelo exemplo do neri.
Estou usando o eclipse Juno e só gwt.
> criei um projeto chamado SistemaLoginRPC;
conteudo do meu arquivo SistemaLoginRPC.gwt.xml
<?xml version="1.0" encoding="UTF-8"?>
<!--
When updating your version of GWT, you should also update this DTD reference,
so that your app can take advantage of the latest GWT module capabilities.
-->
<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.5.0//EN"
<module rename-to='sistemaloginrpc'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User'/>
<!-- Inherit the default GWT style sheet. You can change -->
<!-- the theme of your GWT application by uncommenting -->
<!-- any one of the following lines. -->
<inherits name='com.google.gwt.user.theme.clean.Clean'/>
<!-- <inherits name='com.google.gwt.user.theme.standard.Standard'/> -->
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
<!-- Other module inherits -->
<!-- Specify the app entry point class. -->
<entry-point class='br.com.videoaulasneri.client.SistemaLoginRPC'/>
<!-- Specify the paths for translatable code -->
<source path='client'/>
<source path='shared'/>
</module>
conteudo do loginInterface.java
package br.com.videoaulasneri.client;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("sistemaloginrpc")
public interface loginInterface extends RemoteService{
public String validaUsuarioSenha(String usuario, String senha);
}
conteudo do loginInterfaceAsync.java
package br.com.videoaulasneri.client;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("sistemaloginrpc")
public interface loginInterface extends RemoteService{
public String validaUsuarioSenha(String usuario, String senha);
}
conteudo da tela SistemaLoginRPC.java
package br.com.videoaulasneri.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.PasswordTextBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
public class SistemaLoginRPC implements EntryPoint {
public static loginInterfaceAsync getServico(){
return GWT.create(loginInterface.class);
}
public void onModuleLoad() {
final AsyncCallback<String> callback = new AsyncCallback<String>() {
@Override
public void onFailure(Throwable caught) {
Window.alert("Problema na comunicacao");
}
@Override
public void onSuccess(String result) {
Window.alert(result);
}
};
Label lbUsu = new Label("Usuario:");
Label lbSen = new Label("Senha:");
final TextBox tbUsu = new TextBox();
final PasswordTextBox psSen = new PasswordTextBox();
Button btEnviar = new Button("Enviar");
btEnviar.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
getServico().validaUsuarioSenha(tbUsu.getText(), psSen.getText(), callback);
}
});
RootPanel.get().add(lbUsu);
RootPanel.get().add(tbUsu);
RootPanel.get().add(lbSen);
RootPanel.get().add(psSen);
RootPanel.get().add(btEnviar);
}
}
os loginInterface, loginInterfaceAsync e SistemaLoginRPC encontrasse na pasta br.com.videaulasneri.client
o conteúdo loginInterfaceImpl.java
package br.com.videoaulasneri.server;
import br.com.videoaulasneri.client.loginInterface;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class loginInterfaceImpl extends RemoteServiceServlet implements loginInterface{
@Override
public String validaUsuarioSenha(String usuario, String senha) {
return "Do servidor retornou "+usuario;
}
}
e meu arquivo web.xml
<!-- Servlets -->
<servlet>
<servlet-name>SistemaLoginRPC</servlet-name>
<servlet-class>br.com.server.loginInterfaceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SistemaLoginRPC</servlet-name>
<url-pattern>/br.com.videoaulasneri/sistemaloginrpc</url-pattern>
</servlet-mapping>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>SistemaLoginRPC.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>SystemServiceServlet</servlet-name>
<servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
<init-param>
<param-name>services</param-name>
<param-value/>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SystemServiceServlet</servlet-name>
<url-pattern>/_ah/spi/*</url-pattern>
</servlet-mapping>
</web-app>
quando compilo e executo o enviar ele dá esses erros:
Initializing App Engine server
Dez 30, 2012 7:40:42 PM com.google.apphosting.utils.jetty.JettyLogger info
INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
Dez 30, 2012 7:40:42 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO: Successfully processed R:\Innovation\Projeto Innovation\SistemaLoginRPC\war\WEB-INF/appengine-web.xml
Dez 30, 2012 7:40:42 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO: Successfully processed R:\Innovation\Projeto Innovation\SistemaLoginRPC\war\WEB-INF/web.xml
Dez 30, 2012 5:40:42 PM com.google.appengine.tools.development.DevAppServerImpl start
Dez 30, 2012 5:40:42 PM com.google.appengine.tools.development.DevAppServerImpl start
Dez 30, 2012 6:00:43 PM com.google.appengine.tools.development.LocalResourceFileServlet doGet
WARNING: No file found for: /sistemaloginrpc/sistemaloginrpc
alguém pode me ajudar, já mudei várias vezes o @RemoteServiceRelativePath("sistemaloginrpc") do loginInterface, mas nada....
Obrigado...