import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class TestServer implements EntryPoint {
final TestServerServiceAsync calservice = (TestServerServiceAsync)
GWT.create(TestServerService.class);;
final Button button = new Button("Click Here");
final Label label = new Label("Message From Client");
public void onModuleLoad() {
ServiceDefTarget target = (ServiceDefTarget)calservice;
String hostURL = GWT.getModuleBaseURL();
// get contextpath from request object to use here .
hostURL = hostURL + "/test";
target.setServiceEntryPoint(hostURL);
button.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
calservice.getString(callback);
}
});
RootPanel.get("buttonSlot").add(button);
RootPanel.get("labelSlot").add(label);
}
private AsyncCallback callback = new AsyncCallback() {
public void onSuccess(Object result){
String s = (String)result;
label.setText("Message From Server");
}
public void onFailure(Throwable caught) {
caught.printStackTrace();
}
};
}
---------------------------------------------------------------------------------
(TestServerService.java)
package com.dps.hrms.rpcservices.client;
import com.google.gwt.user.client.rpc.RemoteService;
public interface TestServerService extends RemoteService {
public String getString();
}
--------------------------------------------------------------------------------------------
(TestServerServiceAsync.java)
package com.dps.hrms.rpcservices.client;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface TestServerServiceAsync {
public void getString(AsyncCallback callback);
}
-----------------------------------------------------------------------------------
(on server side "TestServerServiceImpl.java")
package com.dps.hrms.rpcservices.server;
import com.dps.hrms.rpcservices.client.TestServerService;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class TestServerServiceImpl extends RemoteServiceServlet
implements TestServerService {
public String getString () {
// System.out.println(this.getThreadLocalRequest().getContextPath()+"context
path");
return "Message From Server";
}
}
-------------------------------------------------------------------------------------------------
(Using all that in my JSP)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta name='gwt:module'
content='gwt/com.dps.hrms.rpcservices.TestServer/com.dps.hrms.rpcservices.TestServer'
/>
</head>
<body>
<script type="text/javascript" language='javascript'
src='gwt/com.dps.hrms.rpcservices.TestServer/gwt.js' ></script>
<h1> <div align="center"> Testing RPC </div> </h1> <hr>
<table border="1" width="50%" align="center">
<tr>
<td id="buttonSlot"> </td>
<td id="labelSlot"> </td>
</tr>
</table>
</table>
</body>
</html>
-------------------------------------------------------------------------------------------
(Mapping for the servlet in web.xml file)
<servlet>
<servlet-name>TestServerServiceImpl</servlet-name>
<servlet-class>com.dps.hrms.rpcservices.server.TestServerServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServerServiceImpl</servlet-name>
<url-pattern>/gwt/com.dps.hrms.rpcservices.TestServer/test</url-pattern>
</servlet-mapping>
------------------------------------------------------------------------------------