2013-04-01 3 views
2

저는 Jena로 조금 놀고 Eclipse에서 Java Google Web Application 프로젝트를 설정했습니다. Jena 2.0 라이브러리를 다운로드하여 프로젝트의 빌드 경로와 /war/WEB-INFO/lib/ 폴더에 추가했습니다.java.lang.NoClassDefFoundError : 클래스 com.hp.hpl.jena.query.Query를 초기화 할 수 없습니다.

내 간단한 서블릿 그래서 거기에 컴파일 오류가없고 내가 말한대로 Libarries가 빌드 경로와 WEB 아래에있는 lib 폴더에 모두 코드

... 
Query query = QueryFactory.create(queryString); 
... 

의 다음 줄을 사용하여 쿼리를 인스턴스화하려고 내가 웹 애플리케이션을 실행하고 나는 다음과 같은 예외가 서블릿을 실행하면 (전쟁 DIR 인치) -INF

:

java.lang.NoClassDefFoundError: Could not initialize class com.hp.hpl.jena.query.Query 
    at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:78) 
    at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:52) 
    at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:40) 
    at nyx.servlets.PeripheralServlet.extractPlace(PeripheralServlet.java:102) 
    at nyx.servlets.PeripheralServlet.doCreate(PeripheralServlet.java:83) 

서블릿 클래스는 요정입니다 pheralServlet.java와 메소드 의 102 번 줄 extractPlace은 Query 객체를 인스턴스화하려고 시도하는 곳입니다.

아무도 내 문제가 무엇인지에 대한 단서를 줄 수 있습니까? 내게는 그 줄에 누락 된 항아리 포함이나 뭔가가있는 것처럼 보이지만 내가 말했듯이 프로젝트의 빌드 경로와 WEB-INF 아래의 lib 폴더에 Jena 파일을 모두 포함시켰다.

대단히 감사합니다.

편집 : 이상한 것은 QueryFactory 실제로 모두 QueryQueryFactory이 같은 예나 패키지 오른쪽에있는 오류 등을 제공하지 않는다는 것이다?

EDIT2 :이 후 페이지를 다시로드하면

java.lang.StackOverflowError 
    at java.util.regex.Pattern$Curly.match(Pattern.java:3744) 
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168) 
    at java.util.regex.Pattern$Branch.match(Pattern.java:4114) 
    at java.util.regex.Pattern$Branch.match(Pattern.java:4112) 
    at java.util.regex.Pattern$GroupTail.match(Pattern.java:4227) 
    at java.util.regex.Pattern$Curly.match0(Pattern.java:3782) 
    at java.util.regex.Pattern$Curly.match(Pattern.java:3744) 
    at java.util.regex.Pattern$GroupHead.match(Pattern.java:4168) 
    at java.util.regex.Pattern$Start.match(Pattern.java:3055) 
    at java.util.regex.Matcher.search(Matcher.java:1105) 
    at java.util.regex.Matcher.find(Matcher.java:535) 
    at com.google.appengine.tools.development.LocalEnvironment.getServerName(LocalEnvironment.java:302) 
    at com.google.appengine.tools.development.DevAppServerImpl.getCurrentAppContext(DevAppServerImpl.java:372) 
    ... 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:82) 
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:156) 
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:704) 
    at org.slf4j.impl.JCLLoggerFactory.getLogger(JCLLoggerFactory.java:64) 
    ... 

내가 얻을 다시 원래 : 필요한 항아리 번 이제 포함되어 처음부터 과정을 반복하고 확인 만 한 후 나는 다음과 같은 예외가 예외. 나는 약간의 연구를 해왔고 Jena 버전 2.6과 관련된 몇 가지 관련 문제를 발견했습니다. 우리는 2013 년이며, 예나가 나는 그들이

+0

이클립스 프로젝트에 Apache Jena jar를 추가하십시오. https://www.cs.duke.edu/courses/fall06/cps004g/assign/shotgun/addlibrary.html –

+0

이미 모든 Jena 병이 추가되었습니다. 이 외에도 Google Eclipse Plugin은 Jetty를 사용합니다. 이것은 실제로 중요한가? – dncolomer

+0

Jena 병이 섞여 있거나 손상되었을 수 있습니다. 동일한 버전의 병 만 사용하십시오. 2.10.0 – AndyS

답변

0

ModelFactory.createDefaultModel(); 항아리 올과 내가 같은 문제가 classpath

arq-2.8.1-SHAPSHOT.jar

+0

여전히 동일한 예외가 발생 함 – dncolomer

+0

@ user1450813이 jar에 대한 종속성을 추가했는지 확인하십시오. –

0

에 다음 항아리를 추가하기 때문에 관련이없는 생각의 2.10 버전으로 진화 한 가정 마지막 Jena (2.11.0) 및 AppEngine 1.8.4.

XercesImpl에 문제가있어 빌드 경로에서 제거했습니다. 하지만 여전히 오류가 런타임에 발생하고 컴파일 경고가 표시되지 않는다는 것이 매우 이상하다는 것을 발견했습니다.

관련 문제