繁体   English   中英

Smartsheet登录期间发生ClassNotFoundException

[英]ClassNotFoundException during smartsheet login

我正在尝试使用其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;
    }
}

堆栈跟踪:

Exception in thread "main" java.lang.NoClassDefFoundError: 
    com/fasterxml/jackson/databind/JsonDeserializer
        at com.smartsheet.api.internal.SmartsheetImpl.
    (SmartsheetImpl.java:279)
        at com.smartsheet.api.SmartsheetBuilder.build(SmartsheetBuilder.java:258)
        at smartsheet.Main.main(Main.java:27)
    Caused by: java.lang.ClassNotFoundException: 
    com.fasterxml.jackson.databind.JsonDeserializer
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 3 more

是否有引发此错误的特定原因? 我曾尝试使用smartsheetfactory来访问smartsheet,如他们的示例程序所示,但是我遇到了同样的错误。

当类在编译时存在但由于任何原因在运行时不可用时,将发生NoClassDefFoundError

确实很难诊断和解决此问题,因为问题是在运行时类路径中的类文件不可用。 这些要点解决了NoClassDefFoundError

  1. 确保在类路径中是否有包含该类的类或jar。
  2. 如果在应用程序的类路径上可用,则很可能是类路径被覆盖。 要解决此问题,您需要找到应用程序使用的确切类路径。
  3. 如果应用程序使用多个类加载器,则一个类加载器加载的类可能无法被其他类加载器使用。

J2EE环境中 ,即使存在该类,也可能会出现NoClassDefFoundError的情况,因为它可能对相应的类加载器不可见。

我收到此错误的原因是因为我的构建中的API使用了错误的JAR文件。 JsonSerializer类是一个依赖项,正确的JAR文件包括依赖项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM