2012-08-06 83 views
0

我有WEB-INF \ lib目錄中的jacob.jar和windows \ system32目錄中的jacob-1.16.1-x86.dll。初始化類錯誤com.jacob.com.Dispatch

在開發箱上正常工作。在生產機器上摔倒。我運行Tomcat 7日誌包含:

Dispatch oCompy = new Dispatch("Compy.Connect") 

任何建議:

java.lang.NoClassDefFoundError: Could not initialize class com.jacob.com.Dispatch 
在此行

編輯: 根據建議,我已經通過jacob的來源,但我找不到任何引用通常不可用的庫的導入語句。我將在這裏列出清單。我是比較新的Java的,所以也許我失去了一些東西:

jacob-1.16.1\src\com\jacob\activex\activexcomponent.java - import com.jacob.com.Dispatch; 
jacob-1.16.1\src\com\jacob\activex\activexcomponent.java - import com.jacob.com.JacobObject; 
jacob-1.16.1\src\com\jacob\activex\activexcomponent.java - import com.jacob.com.Variant; 
jacob-1.16.1\src\com\jacob\activex\activexdispatchevents.java - import com.jacob.com.InvocationProxy; 
jacob-1.16.1\src\com\jacob\activex\activexdispatchevents.java - import com.jacob.com.Dispatch; 
jacob-1.16.1\src\com\jacob\activex\activexdispatchevents.java - import com.jacob.com.DispatchEvents; 
jacob-1.16.1\src\com\jacob\activex\activexinvocationproxy.java - import com.jacob.com.Variant; 
jacob-1.16.1\src\com\jacob\activex\activexinvocationproxy.java - import com.jacob.com.NotImplementedException; 
jacob-1.16.1\src\com\jacob\activex\activexinvocationproxy.java - import java.lang.reflect.Method; 
jacob-1.16.1\src\com\jacob\activex\activexinvocationproxy.java - import com.jacob.com.InvocationProxy; 
jacob-1.16.1\src\com\jacob\activex\activexinvocationproxy.java - import java.lang.reflect.InvocationTargetException; 
jacob-1.16.1\src\com\jacob\com\dateutilities.java - import java.util.Calendar; 
jacob-1.16.1\src\com\jacob\com\dateutilities.java - import java.util.Date; 
jacob-1.16.1\src\com\jacob\com\invocationproxyallvariants.java - import java.lang.reflect.InvocationTargetException; 
jacob-1.16.1\src\com\jacob\com\invocationproxyallvariants.java - import java.lang.reflect.Method; 
jacob-1.16.1\src\com\jacob\com\jacobreleaseinfo.java - import java.util.Properties; 
jacob-1.16.1\src\com\jacob\com\jacobreleaseinfo.java - import java.io.InputStream; 
jacob-1.16.1\src\com\jacob\com\jacobreleaseinfo.java - import java.io.IOException; 
jacob-1.16.1\src\com\jacob\com\libraryloader.java - import java.util.Set; 
jacob-1.16.1\src\com\jacob\com\libraryloader.java - import java.util.ResourceBundle; 
jacob-1.16.1\src\com\jacob\com\libraryloader.java - import java.util.Locale; 
jacob-1.16.1\src\com\jacob\com\libraryloader.java - import java.util.MissingResourceException; 
jacob-1.16.1\src\com\jacob\com\libraryloader.java - import java.util.Enumeration; 
jacob-1.16.1\src\com\jacob\com\libraryloader.java - import java.util.HashSet; 
jacob-1.16.1\src\com\jacob\com\rot.java - import java.util.WeakHashMap; 
jacob-1.16.1\src\com\jacob\com\rot.java - import java.util.Map; 
jacob-1.16.1\src\com\jacob\com\rot.java - import java.util.Iterator; 
jacob-1.16.1\src\com\jacob\com\rot.java - import java.util.HashMap; 
jacob-1.16.1\src\com\jacob\com\variant.java - import java.util.Date; 
jacob-1.16.1\src\com\jacob\com\variant.java - import java.math.BigInteger; 
jacob-1.16.1\src\com\jacob\com\variant.java - import java.math.BigDecimal; 
jacob-1.16.1\src\com\jacob\com\variantutilities.java - import java.util.Date; 
jacob-1.16.1\src\com\jacob\com\variantutilities.java - import java.math.MathContext; 
jacob-1.16.1\src\com\jacob\com\variantutilities.java - import java.math.BigDecimal; 
jacob-1.16.1\src\com\jacob\com\variantutilities.java - import java.math.BigInteger; 
jacob-1.16.1\src\com\jacob\com\variantutilities.java - import java.lang.reflect.Array; 

編輯: 我不知道如果這實際上是一個答案或沒有。

我通過將網站WEB-INF \ lib目錄添加到Tomcat的類路徑中解決了此問題。我覺得這不是正確的答案,因爲我的理解是網站在訪問站點時自動將WEB-INF \ lib包含到類路徑中。

更令人困惑的問題是,該網站已經運行OK訪問該目錄中的其他庫。

因此,添加到類路徑是一個行爲不當的庫的解決方法。哪個問題是解決方法正確的答案?我想我會留下這個問題。

回答

1

此錯誤表示類com.jacob.com.Dispatch正在使用另一個類,但無法找到它。

如果您有類源代碼,請檢查它使用的類,並查看是否在類路徑中包含它們。

如果不這樣做,請嘗試查看文檔,找到包含缺失類的jar並將其添加到類路徑中。

+0

我已經經歷了jacob引用的所有類(請參閱編輯),但一直未能找到罪魁禍首。 – 2012-08-08 21:43:32

+0

有時候,這個錯誤會覆蓋真正的錯誤,請嘗試啓用com.jacob庫跟蹤級別的日誌記錄,以便您可以確切地看到發生了什麼。 – Tomer 2012-08-09 08:01:35