2013-03-30 3 views

ответ

4

Есть несколько возможностей попасть в базу данных с помощью 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.

Смежные вопросы