Есть несколько возможностей попасть в базу данных с помощью GWT, как RequestFactory
, RPC
.
Перед тем как начать работу с сервером вызовов, необходимо пройти,
GWT RPC (Что делает сервер вызывает Asynchronesly)
RequestFactory (Альтернатива GWT-RPC для создания данных, ориентированных на услуги)
Пройдя по ссылкам здесь Example of How to make an RPC.
Далее в ваш MyBean операций CRUD, в короткой простой структуре RPC, как показано ниже:
GWT Code <===> InterfaceAsync <===> Interface (Synchronous)<===> Server Code
Я пытаюсь объяснить с вами элементами это самостоятельно.
синхронного интерфейса (центральный для всего RPC):
import com.google.gwt.user.client.rpc.RemoteService;
public interface BeanProcessRPCInterface extends RemoteService
{
public Mybean processMybeanRPC(Mybean bean);
}
асинхронной интерфейс (Key часть на клиенте):
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface BeanProcessRPCInterfaceAsync
{
public void processMybeanRPC (Mybean bean, AsyncCallback callback);
}
Здесь вы идете с Service
(Equals to servlet), который реализует «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
}
Составьте карту вышеуказанного класса в вашем 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>
Наконец в службе GWT код .use ниже
Использование в коде:
// зарегистрировать службу.
private final BeanProcessRPCInterfaceAsync beanService =
GWT.create(BeanProcessRPCInterface.class);
ServiceDefTarget endpoint = (ServiceDefTarget) service;
endpoint.setServiceEntryPoint('beanrpc');
запрашивающий сервер с обратным вызовом
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 комплектных конструкций:
BeanProcessRPCInterfaceAsync, BeanProcessRPCInterface должен быть в клиенте * пакет
MyBean класс должен быть долевой * пакет
BeanProcessRPCImpl должен быть сервер * пакет
Good Luck.