我正在使用GWT开发一个webapp。当我尝试在eclipse下运行它时("作为Web应用程序运行"),我得到一个指向我的RPC异步类的java.lang.ClassNotFoundException。
我对Java开发有经验,但没有使用GWT。我研究过这个问题但是我发现的建议对我不起作用,或者我不知道如何将它应用到我自己的webapp上。我希望有人能够提供一些见解。
java.lang.ClassNotFoundException:gov.nist.toolkit.xdstools3.server.InterfaceClientServerImpl
--- stack trace of some more Jetty and GWT stuff that fails because of the error above ---
javax.servlet.UnavailableException: gov.nist.toolkit.xdstools3.server.InterfaceClientServerImpl
--- same thing ---
我实现了RPC逻辑:
client > InterfaceClientServer
> InterfaceClientServerAsync
server > InterfaceClientServerImpl
并修改了web.xml以指向我的服务类。
package gov.nist.toolkit.xdstools3.client;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("service")
public interface InterfaceClientServer extends RemoteService {
public void logMeIn(String username, String password);
}
package gov.nist.toolkit.xdstools3.client;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
public interface InterfaceClientServerAsync {
public void logMeIn(String username, String password, AsyncCallback<Void> callback);
}
package gov.nist.toolkit.xdstools3.server;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import gov.nist.toolkit.xdstools3.client.InterfaceClientServer;
public class InterfaceClientServerImpl extends RemoteServiceServlet implements InterfaceClientServer {
private static final long serialVersionUID = 1L;
public void logMeIn(String username, String password){
Caller.getInstance().logMeIn(username, password);
}
}
<web-app>
<display-name>Document Sharing Toolkit</display-name>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>Xdstools3.html</welcome-file>
</welcome-file-list>
<!-- Example servlet loaded into servlet container -->
<servlet>
<servlet-name>InterfaceClientServer</servlet-name>
<servlet-class>gov.nist.toolkit.xdstools3.server.InterfaceClientServerImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>InterfaceClientServer</servlet-name>
<url-pattern>/xdstools3/service</url-pattern>
</servlet-mapping>
</web-app>
http://www.gwtproject.org/doc/latest/tutorial/RPC.html
我还在Stackoverflow上发现了一些类似的问题,例如:GWT question on RPC。这篇文章表明我的web.xml和链接到异步类有问题,但我无法弄清楚是什么。
如果最终相关:GWT 2.5.1,Maven(m2e),Smartgwt。
非常欢迎任何帮助。
答案 0 :(得分:0)
可能无法编译服务器端类。
请确保target
下有服务器端类。检查项目的课程路径。
请从下面的截图中确认:
src/main/webapp
project/target/classes