我有一個類,我認爲有一些依賴問題引用外部庫文件。每次我嘗試在服務器上運行此操作時,都會收到錯誤,指出找不到類。例如:Java類未找到錯誤
SEVERE: Class [ org/json/JSONException ] not found. Error while loading [ class com.myproj.logic.Driver ]
這是阻止類執行。我試着拿出具體的只是說「拋出異常」,並得到了以下錯誤拋出execption:
WARNING: A system exception occurred during an invocation on EJB Driver method public void com..logic.Driver.initURL() throws java.lang.Exception javax.ejb.EJBException: javax.ejb.CreateException: Initialization failed for Singleton Driver
Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.IOUtils
@Singleton
public class Driver {
@EJB RSSbean rssbean;
@PostConstruct
@Schedule(hour ="*/1", minute ="*/1", second ="*/1", persistent = false)
public void initURL() throws IOException, JSONException{
URL twitterSource = new URL("http://search.twitter.com/search.json?q=news");
ByteArrayOutputStream urlOutputStream = new ByteArrayOutputStream();
IOUtils.copy(twitterSource.openStream(), urlOutputStream);
String urlContents = urlOutputStream.toString();
JSONObject thisobject = new JSONObject(urlContents);
JSONArray names = thisobject.names();
JSONArray asArray = thisobject.toJSONArray(names);
JSONArray resultsArray = thisobject.getJSONArray("results");
JSONObject jsonObject = resultsArray.getJSONObject(0);
String twitterText = jsonObject.getString("text");
//System.out.println(twitterText);
System.out.println("Calling rssbean from Driver");
rssbean.updateDatabase("twitterText");
}
}
我已經編輯Java類路徑,並添加對於這些用戶庫以及編輯項目的構建路徑。這些庫顯示在列表中,我沒有收到編譯器錯誤,所以至少Eclipse已經認識到這些庫。執行期間出現問題,所以我認爲那裏有問題。
我應該在Windows> Preferences> Java> Classpath>中編輯類路徑,並在其中添加Jars嗎?我以前不必爲其他圖書館做這件事。
編譯和執行類的方法不同。你如何啓動應用程序?在運行時類路徑中列出了丟失的庫文件嗎? – 2011-12-13 17:39:29
我在glassfish 3.1中運行它。我認爲我的構建路徑很好,它必須是類路徑。我如何檢查這個以確保它們在那裏?如果我轉到Windows>首選項> Java>構建路徑>類路徑>那裏只有JRE庫文件。 – Randnum 2011-12-13 17:46:55