Smartsheet登录期间发生ClassNotFoundException

我正在尝试使用其api登录到智能表,但遇到由ClassNotFound异常引起的NoClassDefFoundError。


import java.util.ArrayList;

import java.util.Properties;

import java.util.Set;

import java.util.HashSet;

import java.util.List;

import java.io.InputStream;

import java.io.FileInputStream;

import com.smartsheet.api.Smartsheet;

import com.smartsheet.api.SmartsheetFactory;

import com.smartsheet.api.models.Cell;

import com.smartsheet.api.models.Column;

import com.smartsheet.api.models.Row;

import com.smartsheet.api.models.Sheet;

import com.smartsheet.api.models.PagedResult;

import com.smartsheet.api.models.AutomationAction;

import com.google.gson.Gson;

import com.smartsheet.api.SmartsheetBuilder;


public class Main 

{

    //main method for our main class

    public static void main(String args[]) throws Exception

    {

        /*line that throws error*/

        Smartsheet ss = new SmartsheetBuilder().setAccessToken("myAccessToken").build(); 

        // other parts of the program

        return;

    }

}

堆栈跟踪:

    线程“主”中的异常java.lang.NoClassDefFoundError: 

    com / fasterxml / jackson / databind / JsonDeserializer

        请访问com.smartsheet.api.internal.SmartsheetImpl。

    (SmartsheetImpl.java:279)

        在com.smartsheet.api.SmartsheetBuilder.build(SmartsheetBuilder.java:258)

        在smartsheet.Main.main(Main.java:27)

    造成原因:java.lang.ClassNotFoundException: 

    com.fasterxml.jackson.databind.JsonDeserializer

        在java.net.URLClassLoader.findClass(未知来源)

        在java.lang.ClassLoader.loadClass(未知来源)

        在sun.misc.Launcher $ AppClassLoader.loadClass(未知来源)

        在java.lang.ClassLoader.loadClass(未知来源)

        ...另外3个

是否有任何特定原因会引发此错误?我尝试按照他们的示例程序中的说明使用smartsheetfactory访问smartsheet,但是遇到了同样的错误。


呼如林
浏览 334回答 2
2回答

繁花如伊

NoClassDefFoundError 当类在编译时存在但由于任何原因在运行时不可用时发生。确实很难诊断和解决此问题,因为问题是在运行时类路径中的类文件不可用。您可以利用这些观点来解决NoClassDefFoundError确保在类路径中是否有包含该类的类或jar。如果在应用程序的类路径上可用,则很可能是类路径被覆盖。要解决此问题,您需要找到应用程序使用的确切类路径。如果应用程序使用多个类加载器,则由一个类加载器加载的类可能无法由其他类加载器使用。在J2EE环境中,NoClassDefFoundError即使存在该类,也可能会遇到一个问题,因为该类对于相应的类加载器而言是不可见的。

萧十郎

我收到此错误的原因是因为我的构建中的API使用了错误的JAR文件。JsonSerializer类是一个依赖项,正确的JAR文件包括依赖项。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java