webapp中GWT异步类的java.lang.ClassNotFoundException

时间:2014-05-02 19:36:44

标签: java eclipse gwt asynchronous

我正在使用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以指向我的服务类。

InterfaceClientServer.java

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);
}

InterfaceClientServerAsync.java

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);
}

InterfaceClientServerImpl.java

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.xml

    <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。

非常欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

可能无法编译服务器端类。

请确保target下有服务器端类。检查项目的课程路径。


请从下面的截图中确认:

  • WAR目录src/main/webapp
  • 取消选中此目录的启动和部署
  • 默认输出文件夹project/target/classes

enter image description here

enter image description here