簡體   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