2011-12-13 2 views
0

외부 라이브러리 파일을 참조하는 종속성 문제가 있다고 생각되는 클래스가 있습니다. 서버에서 실행하려고 할 때마다 클래스를 찾을 수 없다는 오류가 발생합니다.실행 중 Java 클래스를 찾을 수 없음

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

이렇게하면 클래스가 실행되지 못합니다. 나는 자바 클래스 경로를 편집 및 편집뿐만 아니라 이들 각각에 대한 사용자 라이브러리를 추가 한

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을 던져 밖으로 데리고 시도 프로젝트의 빌드 경로 라이브러리가 목록에 표시되고 컴파일러 오류가 발생하지 않으므로 적어도 이클립스가이 라이브러리를 인식합니다. 실행 중에 문제가 발생하므로 뭔가 잘못되었다고 생각합니다.

Windows> 환경 설정> Java> 클래스 경로>에서 클래스 경로를 편집하고 거기에 Jars를 추가해야합니까? 나는 이전에 다른 라이브러리를 위해 이것을 할 필요가 없었습니다.

+0

컴파일 및 실행 클래스는 다릅니다. 신청서를 어떻게 시작합니까? 누락 된 librairy가 런타임 클래스 경로에 나열되어 있습니까? –

+0

글래스 피쉬에서 실행 중입니다. 3.1. 내 빌드 경로가 클래스 패스 여야한다고 생각합니다. 그들이 이것을 확인하기 위해 이것을 어떻게 확인할 수 있습니까? 윈도우> 환경 설정> 자바> 빌드 경로> 클래스 경로>로 이동하면 거기에 JRE 라이브러리 파일 만 있습니다. – Randnum

+1

누락 된 com.myproj.logic.Driver 클래스가 들어있는 jar를 webapp의 WEB-INF/lib 디렉토리에 추가하여 런타임에 사용할 수 있도록해야한다고 생각합니다. 또는 항아리가 아닌 단일 클래스 인 경우 WEB-INF/classes 디렉토리에 추가하십시오. 두 경우 모두 응용 프로그램을 다시 전개하고 새 jar 또는 클래스를 추가하여 테스트하십시오. –

답변

0

서버의 glassfish가 인식하기 전에 Glassfish/domain/lib 디렉토리에 라이브러리 파일을 추가해야한다는 것을 알았습니다.

+0

내 자신의 질문에 대답하는 것이 싫지만이 방법은 내가 사용하고 있던 키워드를 토대로 내게 도움이되지 못했습니다. – Randnum

+0

또는 내 경우처럼/WEB-INF/lib/needs jettison.jar – tricknology

관련 문제