An asynchronous call calls onFailure instead of onSuccess, although the information comes from the database. What is the reason, comrades?

public class Auth extends Composite { interface AuthUiBinder extends UiBinder<HTMLPanel, Auth> { } @UiField TextBox login; @UiField PasswordTextBox password; @UiField Button signin; private static AuthUiBinder ourUiBinder = GWT.create(AuthUiBinder.class); public Auth() { initWidget(ourUiBinder.createAndBindUi(this)); signin.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { UserService.App.getInstance().getAllUsers(new AsyncCallback<List<User>>() { public void onFailure(Throwable caught) { Window.alert(login.getText() + " " + password.getText()); } public void onSuccess(List<User> result) { for (User user: result) { if (login.getText().equals(user.getLogin()) && password.getText().equals(user.getPassword())){ History.newItem("greetingUI"); RootPanel.get("body").clear(); RootPanel.get("body").add(new Greeting(user.getName())); } } } }); } }); }} 

Log from the console

com.google.gwt.user.client.rpc.StatusCodeException: 500 Internal Server Error Apache Tomcat / 7.0.68 - Error report

525D76;} -> HTTP Status 500 - com / google / gwt / user / client / rpc / RemoteService

noshade = "noshade">

type Exception report

message com / google / gwt / user / client / rpc / RemoteService

Description The server encountered an internal error that prevented it from fulfilling this request.

exception

  java.lang.NoClassDefFoundError:
 com / google / gwt / user / client / rpc / RemoteService
   java.lang.ClassLoader.defineClass1 (Native Method)
   java.lang.ClassLoader.defineClass (ClassLoader.java:760)
   java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142)
   org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal (WebappClassLoaderBase.java.7311)
   org.apache.catalina.loader.WebappClassLoaderBase.findClass (WebappClassLoaderBase.java:1340)
   org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1827)
   org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1701)
   java.lang.ClassLoader.defineClass1 (Native Method)
   java.lang.ClassLoader.defineClass (ClassLoader.java:760)
   java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142)
   org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal (WebappClassLoaderBase.java.7311)
   org.apache.catalina.loader.WebappClassLoaderBase.findClass (WebappClassLoaderBase.java:1340)
   org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1827)
   org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1701)
   org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:494)
   org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:103)
   org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:956)
   org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:436)
   org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1078)
   org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:625)
   org.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.doRun (AprEndpoint.java:2517)
   org.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.run (AprEndpoint.java:2506)
   java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
   java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617)
   org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61)
   java.lang.Thread.run (Thread.java:745) 

root cause

  java.lang.ClassNotFoundException:
 com.google.gwt.user.client.rpc.RemoteService
   org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1858)
   org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1701)
   java.lang.ClassLoader.defineClass1 (Native Method)
   java.lang.ClassLoader.defineClass (ClassLoader.java:760)
   java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142)
   org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal (WebappClassLoaderBase.java.7311)
   org.apache.catalina.loader.WebappClassLoaderBase.findClass (WebappClassLoaderBase.java:1340)
   org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1827)
   org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1701)
   java.lang.ClassLoader.defineClass1 (Native Method)
   java.lang.ClassLoader.defineClass (ClassLoader.java:760)
   java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142)
   org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal (WebappClassLoaderBase.java.7311)
   org.apache.catalina.loader.WebappClassLoaderBase.findClass (WebappClassLoaderBase.java:1340)
   org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1827)
   org.apache.catalina.loader.WebappClassLoaderBase.loadClass (WebappClassLoaderBase.java:1701)
   org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:494)
   org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:103)
   org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:956)
   org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:436)
   org.apache.coyote.http11.AbstractHttp11Processor.process (AbstractHttp11Processor.java:1078)
   org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process (AbstractProtocol.java:625)
   org.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.doRun (AprEndpoint.java:2517)
   org.apache.tomcat.util.net.AprEndpoint $ SocketProcessor.run (AprEndpoint.java:2506)
   java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
   java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617)
   org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61)
   java.lang.Thread.run (Thread.java:745) 

Thanks in advance for your help.

  • Try to see what happens in the debugger of the browser (what goes around the network and whether there are errors in the console) and run the server part of the getAllUsers method under debugging - bobzer
  • @bobzer Comes 500 code. - Dmitriy Smirnov
  • See server logs, if there is nothing - set the DEBUG logging level on the server (usually the INFO level is set by default, but some server components may display errors at the DEBUG level). How to configure the logging level - see your application server documentation. - bobzer
  • @bobzer added logs from the console to the description - Dmitriy Smirnov

1 answer 1

Make sure that in your application, the gwt-servlet.jar library is in the WEB-INF / lib folder. These are the server-side classes required for GWT to work correctly.

  • yes that's right Problem solved, thanks. I do not know why but added manually. Maven does not see these, though they are registered according to dependence. An interesting situation. - Dmitriy Smirnov