Hi All,

I'm  trying to create a MVP model of GWT Sample app. as soon as the
execute method is called in the dispatcher below error gets logged.

net.customware.gwt.dispatch.shared.UnsupportedActionException: No
handler is registered for com.project.jobbank.shared.rpc.SendQuery
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
Source)
   at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
   at java.lang.reflect.Constructor.newInstance(Unknown Source)
   at
com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:105)
   at
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
   at
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:
157)
   at
com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java:
1713)
   at
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:
165)
   at
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:
120)
   at
com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:
507)
   at
com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:
264)
   at
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:
91)
   at
net.customware.gwt.dispatch.shared.UnsupportedActionException_FieldSerializer.instantiate(UnsupportedActionException_FieldSerializer.java)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at
com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
   at
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
   at
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:
157)
   at
com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java:
1713)
   at
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:
165)
   at
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:
120)
   at
com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:
507)
   at
com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:
264)
   at
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:
91)
   at com.google.gwt.user.client.rpc.impl.SerializerBase$MethodMap
$.instantiate$(SerializerBase.java)
   at
com.google.gwt.user.client.rpc.impl.SerializerBase.instantiate(SerializerBase.java:
140)
   at
com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:
114)
   at
com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:
61)
   at
com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:
199)
   at
com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:
287)
   at com.google.gwt.http.client.RequestBuilder
$1.onReadyStateChange(RequestBuilder.java:393)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at
com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
   at
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
   at
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:
157)
   at
com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java:
1713)
   at
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:
165)
   at
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:
120)
   at
com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:
507)
   at
com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:
264)
   at
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:
91)
   at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
   at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:188)
   at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at
com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
   at
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
   at
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:
157)
   at
com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java:
1668)
   at
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:
401)
   at
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:
222)
   at java.lang.Thread.run(Unknown Source)

***********************************************************************************************************************************************************************************************
below are the Presenter , action, actionhander and result classes.

public class HomePagePresenter extends
WidgetPresenter<HomePagePresenter.Display>{

       private static final String SERVER_ERROR = "An error occured
while "
               +"attempting to connect to the server";

       public interface Display extends WidgetDisplay{
               public HasValue<String> getQuery();

               public HasClickHandlers getSearch();
       }

       public static final Place PLACE = new Place("Home");
       private final DispatchAsync dispatcher;
       @SuppressWarnings("unused")
       private final SearchResponseDialogPresenter
searchResponseDialogPresenter;

       @Inject
       public HomePagePresenter(final Display display,
                       final EventBus eventBus,
                       final DispatchAsync dispatcher,
                       final SearchResponseDialogPresenter
searchResponseDialogPresenter)
{
               super(display, eventBus);
               // TODO Auto-generated constructor stub
               this.dispatcher = dispatcher;
               this.searchResponseDialogPresenter =
searchResponseDialogPresenter;

               bind();
       }

       @Override
       public Place getPlace() {
               // TODO Auto-generated method stub
               return PLACE;
       }

       @Override
       protected void onBind() {
               display.getSearch().addClickHandler(new ClickHandler()
{

                       public void onClick(final ClickEvent event) {
                               doSearch();

                       }
               });

       }

       protected void doSearch() {
               Log.info("Calling doSearch");
               dispatcher.execute(new
SendQuery(display.getQuery().getValue()),
                               new
DisplayCallback<SendQueryResult>(display) {

                                       @Override
                                       protected void
handleFailure(Throwable e) {
                                               Log.error("Handle
Faliour: ",e);
 
Window.alert(SERVER_ERROR);
                                       }

                                       @Override
                                       protected void
handleSuccess(SendQueryResult value) {
                                               eventBus.fireEvent(new
QuerySentEvent(value.getQuery(),
value.getMessage()));
                                       }
               });

       }

       @Override
       protected void onPlaceRequest(PlaceRequest request) {
               final String query = request.getParameter("q", null);

               if(query != null){
                       display.getQuery().setValue(query);
               }

       }

       @Override
       protected void onUnbind() {
               // TODO Auto-generated method stub

       }

       public void refreshDisplay() {
               // TODO Auto-generated method stub

       }

       public void revealDisplay() {
               // TODO Auto-generated method stub

       }
}

**********************************************************************************************************************************************************************************************
public class SendQuery implements Action<SendQueryResult>{

       /**
        *
        */
       private static final long serialVersionUID =
-4544779145020863564L;



       private String query;

       @SuppressWarnings("unused")
       private SendQuery(){
       }

       public SendQuery(final String query){
               this.query = query;
       }

       public String getQuery() {
               return query;
       }

}

*****************************************************************************************************************************************************************************************************
public class SendQueryHandler implements ActionHandler<SendQuery,
SendQueryResult>{

       private final Log logger;
       private final Provider<ServletContext> servletContext;
       @SuppressWarnings("unused")
       private final Provider<HttpServletRequest> servletRequest;

       @Inject
       public SendQueryHandler(final Log logger,
                       final Provider<ServletContext> servletContext,
                       final Provider<HttpServletRequest>
servletRequest){
               this.logger = logger;
               this.servletContext = servletContext;
               this.servletRequest = servletRequest;
       }

       public SendQueryResult execute(final SendQuery action,
                       final ExecutionContext context)
                       throws ActionException {
               final String query = action.getQuery();

               try{
                       String serverInfo =
servletContext.get().getServerInfo();

                       final String message = "Query: "+query+"\n"
                               +"server Info: "+serverInfo;

                       return new SendQueryResult(query,message);

               }catch(Exception caught){
                       logger.error("Unable to send message", caught);
                       throw new ActionException(caught);
               }
       }

       public Class<SendQuery> getActionType() {
               // TODO Auto-generated method stub
               return SendQuery.class;
       }

       public void rollback(SendQuery arg0, SendQueryResult arg1,
                       ExecutionContext arg2) throws ActionException {
               // TODO Auto-generated method stub

       }



}

********************************************************************************************************************************************************************************************
public class SendQueryResult implements Result{

       /**
        *
        */
       private static final long serialVersionUID =
6664713784753210379L;

       private String query;
       private String message;

       public SendQueryResult(final String query, final String message)
{
               this.query = query;
               this.message = message;
       }

       @SuppressWarnings("unused")
       private SendQueryResult(){
       }

       public String getQuery(){
               return query;
       }

       public String getMessage(){
               return message;
       }

}


Any help on this would be much appreciated...

Thnkx in advance.

InsI

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to