Beruflich Dokumente
Kultur Dokumente
The Objects
com.google.gwt.user.client.rpc.RemoteService
com.google.gwt.user.client.rpc.AsyncCallback
com.google.gwt.user.client.rpc.ServiceDefTarget
com.google.gwt.user.server.rpc.RemoteServiceServlet
RPC plumbing diagram
RPC plumbing diagram
package com.mycompany.client;
import com.google.gwt.user.client.rpc.RemoteService;
public interface MyAddService extends RemoteService {
public int add(int a, int b);
}
RPC plumbing diagram
package com.mycompany.server;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.mycompany.client.MyAddService;
public class MyAddServiceImpl
extends RemoteServiceServlet implements MyAddService{
public int add(int a, int b) {
int z = a + b;
return z;
}
}
RPC plumbing diagram
package com.mycompany.client;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface MyAddServiceAsync {
public void add(int a, int b, AsyncCallback callback);
}
Deploy service
Tomcat -> add Servlet
Hosted mode -> modify module XML
<module>
<inherits name='com.google.gwt.user.User'/>
<entry-point class='com.mycompany.client.MyApplication'/>
<servlet path="/addService"
class="com.mycompany.server.MyAddServiceImpl“/>
</module>
Actually making a call
button.addClickListener(
new ClickListener() {
public void onClick(Widget sender) {
AddServiceAsync addService = (AddServiceAsync) GWT.create(AddService.class);
ServiceDefTarget endpoint = (ServiceDefTarget) addService;
String moduleRelativeURL = GWT.getModuleBaseURL() + "myAddService“;
endpoint.setServiceEntryPoint(moduleRelativeURL);
);
}
actually make the call
Actually making a call
button.addClickListener(
new ClickListener() {
public void onClick(Widget sender) {
AddServiceAsync addService = (AddServiceAsync) GWT.create(AddService.class);
ServiceDefTarget endpoint = (ServiceDefTarget) addService;
String moduleRelativeURL = GWT.getModuleBaseURL() + "myAddService“;
endpoint.setServiceEntryPoint(moduleRelativeURL);
AsyncCallback callback = new AsyncCallback(){
public void onSuccess(Object result){
resultaatLabel.setText(result.toString());
}
public void onFailure(Throwable caught) {
resultaatLabel.setText(caught.getMessage());
}
};
addService.add(Integer.parseInt(aBox.getText()),
Integer.parseInt(bBox.getText()),
callback);
}
}
);
code executed on client side
code executed on server side
More info
http://code.google.com/webtoolkit/doc/latest/Dev
GuideServerCommunication.html
Service Implementation Path
2. Using ServiceDefTarget
ServiceDefTarget endPoint = (ServiceDefTarget) greetingService;
endPoint.setServiceEntryPoint(GWT.getModuleBaseURL() + “greet”);
GWT modules may declare one or more <servlet> tags. These define Java Servlets
that implement the server-side component of a GWT-enabled web application.
Prior to GWT 1.6, these GWT module servlet tags controlled the set of servlets were
actually instantiated during hosted mode. But as of GWT 1.6, this is no longer true.
Instead, the web application's WEB-INF/web.xml configuration file controls what
servlets are instantiated. A GWT module specifies only what servlets are expected.
During hosted mode startup, the set of expected servlets (from GWT module
<servlet> tags) is validated against the set of actual servlets (from the WEB-
INF/web.xml) and a warning is issued for each expected servlet which does not
match an actual servlet.
Reference: gwt-2.0.3/doc/helpInfo/servletMappings.html
… and explore more by practice
Thanking You
Mahesh Babu M