2011-12-13 20 views
0

私は、外部ライブラリファイルを参照するいくつかの依存関係の問題があると考えているクラスがあります。サーバー上でこれを実行しようとするたびに、クラスが見つからないというエラーが表示されます。実行中にJavaクラスが見つかりませんでした

SEVERE: Class [ org/json/JSONException ] not found. Error while loading [ class com.myproj.logic.Driver ]

これはクラスの実行を妨げています。私はJavaのクラスパスを編集し、編集だけでなく、これらのそれぞれについて、ユーザーライブラリを追加した

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"); 

} 
} 

:私は、特定のは、単に「例外をスロー」と言って、次のエラーを得たことにより、execptionをスロー取り出してみましたプロジェクトのビルドパス。ライブラリはリストに表示されているので、少なくともEclipseはこれらのライブラリを認識しているので、コンパイラエラーは発生しません。実行中に問題が発生するので、何か問題があると思います。

Windowsの[設定]> [Java]> [クラスパス]でクラスパスを編集してそこにJarsを追加する必要がありますか?これまで他の図書館でもこれを行う必要はありませんでした。

+0

コンパイルと実行のクラスパスが異なります。あなたはどのようにアプリケーションを起動しますか?不足しているlibrairyは、あなたのランタイムクラスパスにリストされていますか? –

+0

私はglassfish 3.1で実行しています。私のビルドパスはクラスパスでなければならないと思う。彼らがそこにいることを確認するにはどうすればいいですか?私がWindows> preferences> Java> build path> class path>に行くとJREライブラリファイルしかありません。 – Randnum

+1

私はあなたがWebアプリケーションのWEB-INF/libディレクトリに欠けているcom.myproj.logic.Driverクラスを含むjarファイルを追加して、実行時に使用できるようにする必要があると思います。または、jarではなく単一のクラスであれば、WEB-INF/classesディレクトリに追加します。いずれの場合も、アプリケーションを再デプロイし、新しいjarまたはクラスを追加してテストします。 –

答えて

0

サーバー上のglassfishによって認識される前に、Glassfish/domain/libディレクトリにライブラリファイルを追加する必要があることがわかりました。

+0

私自身の質問に答えるのは嫌いですが、これは私が使用していたキーワードに基づいて私を引き上げるものではありませんでした。 – Randnum

+0

または、私の場合のように/ WEB-INF/lib/needs jettison.jar – tricknology

関連する問題