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.