我有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訪問該目錄中的其他庫。
因此,添加到類路徑是一個行爲不當的庫的解決方法。哪個問題是解決方法正確的答案?我想我會留下這個問題。
我已經經歷了jacob引用的所有類(請參閱編輯),但一直未能找到罪魁禍首。 – 2012-08-08 21:43:32
有時候,這個錯誤會覆蓋真正的錯誤,請嘗試啓用com.jacob庫跟蹤級別的日誌記錄,以便您可以確切地看到發生了什麼。 – Tomer 2012-08-09 08:01:35