从RESTful web服务调用函数时发生NoClassDefFoundError

从RESTful web服务调用函数时发生NoClassDefFoundError,rest,jax-rs,noclassdeffounderror,Rest,Jax Rs,Noclassdeffounderror,我正在尝试用java创建一个RESTful web服务,它将允许使用Yubikey进行身份验证。 我正在修改我在尝试学习REST时完成的现有教程 我试图从javax.ws.rs.core.Response函数中调用验证函数,但从导入的yubikey JAR中不断得到一个包错误 我从构建路径->库-->添加外部JAR导入了这些JAR 将表单发布到RESTful url时出现如下错误: java.lang.NoClassDefFoundError:com/yubico/client/v2/excep

我正在尝试用java创建一个RESTful web服务,它将允许使用Yubikey进行身份验证。 我正在修改我在尝试学习REST时完成的现有教程

我试图从javax.ws.rs.core.Response函数中调用验证函数,但从导入的yubikey JAR中不断得到一个包错误

我从构建路径->库-->添加外部JAR导入了这些JAR

将表单发布到RESTful url时出现如下错误:

java.lang.NoClassDefFoundError:com/yubico/client/v2/exceptions/YubicoValidationException

package de.vogella.jersey.todo.resources;


import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;

import com.yubico.client.v2.exceptions.YubicoValidationException;
import com.yubico.client.v2.exceptions.YubicoValidationFailure;
import de.vogella.jersey.todo.resources.Validate;

@Path("/test")
public class Test {

@POST
public Response testCred(@FormParam("username") String username,
          @FormParam("password") String password,
          @FormParam("otp") String otp) throws YubicoValidationException, YubicoValidationFailure {
    int client_id = 11095; 
    boolean status;
    status = Validate.validate(otp, client_id);

    return Response.status(200)
        .entity("validation status: : " + status + ", for client " + otp)
        .build();

    }

}
validate类如下所示:

package de.vogella.jersey.todo.resources;

import com.yubico.client.v2.YubicoClient;
import com.yubico.client.v2.YubicoResponse;
import com.yubico.client.v2.YubicoResponseStatus;
import com.yubico.client.v2.exceptions.YubicoValidationException;
import com.yubico.client.v2.exceptions.YubicoValidationFailure;


public class Validate {

 public static boolean validate(String otp, int client_id) throws YubicoValidationException, YubicoValidationFailure {
        YubicoClient client = YubicoClient.getClient(client_id);
        YubicoResponse response = client.verify(otp);
        if(response != null && response.getStatus() == YubicoResponseStatus.OK) {
          return true;
        }
        return false;
     }

}

您需要在部署的web应用程序中包含Yubico JAR。为了获得更好的帮助,请将完整的stacktrace添加到您的问题中,以及您正在使用的应用程序服务器和您如何构建应用程序。我如何在部署的web应用程序中包含Yubico JAR?这个问题有上千个答案-您如何构建WAR?我是java新手,请注意,我在eclipse中创建了一个动态web项目,导入我的JAR以构建路径库,设置my web.xml,将一两个包含一些类文件的包放在一起,然后右键单击explorer视图中的项目并在服务器上运行as->,这将在本地主机上的tomcat服务器上运行它。对于动态web项目,请将所需的JAR放入WebContent/web-INF/lib文件夹。