Professional Documents
Culture Documents
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);
}
}
);
In Eclipse: GWT Remote Service
code executed on client side
code executed on server side
In Eclipse: GWT Remote Service
Cypal studio maakt zelf Async interface en
implementatie klasse aan, en past xml file aan
Implementatie van methodes moet wel zelf
voorzien worden
Refresh werkt enkel voor client-side
aanpassingen
Bij server-side aanpassingen moet heel de
applicatie herstart worden
Meer info
http://code.google.com/docreader/#p=google-
web-toolkit-doc-1-5&s=google-web-toolkit-doc-
1-5&t=DevGuideRemoteProcedureCalls