Hi I am new to gwt(java based gui).
Here i am trying to make a GWT server call.
I want to save my MyBean into my Database.
Later on i have to update,delete etc..
What are the possibilities and how can I achieve this ??
Hi I am new to gwt(java based gui).
Here i am trying to make a GWT server call.
I want to save my MyBean into my Database.
Later on i have to update,delete etc..
What are the possibilities and how can I achieve this ??
There are couple of possibilities to hit the database with GWT like RequestFactory,RPC.
Before getting started with server calls please go through,
GWT RPC(Which makes server calls Asynchronesly)
RequestFactory( Alternative to GWT-RPC for creating data-oriented services.)
After gone through the links here is a Example of How to make an RPC.
Coming to your MyBean CRUD operations,in short the simple RPC structure as below :
GWT Code <===> InterfaceAsync <===> Interface (Synchronous)<===> Server Code
I am trying to explain with you elements it self .
The Synchronous Interface(central to the whole RPC):
import com.google.gwt.user.client.rpc.RemoteService;
public interface BeanProcessRPCInterface extends RemoteService
{
public Mybean processMybeanRPC(Mybean bean);
}
The ASynchronous Interface(Key part on Client):
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface BeanProcessRPCInterfaceAsync
{
public void processMybeanRPC (Mybean bean, AsyncCallback callback);
}
Here you go with the Service(Equals to servlet) which implements "BeanProcessRPCInterface"
public class BeanProcessRPCImpl extends
RemoteServiceServlet implements BeanProcessRPCInterface
{
private static final long serialVersionUID = 1L;
public Mybean processMybeanRPC(Mybean bean)
{
//Process your widget here (CRUD operations)
}
**you can override doget,doPost,doDelete....etc along with your methods
}
Map the above class in your web.xml;
<servlet>
<servlet-name>beanrpc</servlet-name>
<servlet-class>com.server.BeanProcessRPCImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>beanrpc</servlet-name>
<url-pattern>/beanrpc</url-pattern>
</servlet-mapping>
Finally in your GWT Code .Use service as below
Using in Code:
//register the service .
private final BeanProcessRPCInterfaceAsync beanService =
GWT.create(BeanProcessRPCInterface.class);
ServiceDefTarget endpoint = (ServiceDefTarget) service;
endpoint.setServiceEntryPoint('beanrpc');
requesting server with callback
beanService.processMybeanRPC(mybean, callback);
AsyncCallback callback = new AsyncCallback()
{
public void onFailure(Throwable caught)
{
//Do on fail
}
public void onSuccess(Object result)
{
//Process successfully done with result (result is which you
// returned in impl class) .
}
};
P.S .Beware of package structures:
BeanProcessRPCInterfaceAsync ,BeanProcessRPCInterface should be in client* package
MyBean class should be in shared* package
BeanProcessRPCImpl should be in server* package
Good Luck.