[英]java.lang.NoClassDefFoundError: com/hp/hpl/jena/shared/BadURIException on running servlet
[英]java.lang.NoClassDefFoundError: Could not initialize class com.hp.hpl.jena.query.Query
我正在與Jena交流,並在Eclipse中建立了一個Java Google Web應用程序項目。 我下載了Jena 2.0庫,並將它們添加到項目的Build路徑中,還添加到了/war/WEB-INFO/lib/
文件夾中。
我的簡單servlet嘗試使用以下代碼行實例化查詢
...
Query query = QueryFactory.create(queryString);
...
因此沒有編譯錯誤,正如我所說,Libarries既在Build Path中,又在WEB-INF下的lib文件夾中(在war dir中)。
當我運行webapp並執行servlet時,出現以下異常:
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)
servlet類是PeripheralServlet.java,方法extractPlace中的第102行是上面的示例 ,我嘗試實例化Query對象。
誰能給我一個有關我的問題可能的線索? 對我來說,這似乎是缺少的jar包含物或該行上的某些內容,但是正如我所說,我將所有jar Jena文件都包含在項目的Build Path和WEB-INF下的lib文件夾中。
非常感謝你。
編輯:奇怪的是,它實際上沒有給出QueryFactory
且Query
和QueryFactory
都在同一個Jena包中,對嗎?
EDIT2:從頭開始重復此過程並確保僅包含所需的jar之后,現在出現以下異常:
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)
...
如果在此之后重新加載頁面,則會再次得到原始異常。 我一直在做一些研究,發現一些相關的問題可以追溯到2009年,因此Jena的版本是2.6。 假設我們在2013年,並且Jena已經發展到其2.10版本,我想它們不太相關
將以下jar添加到classpath
我對ModelFactory.createDefaultModel();
有同樣的問題ModelFactory.createDefaultModel();
罐子來自最后一個Jena(2.11.0)和AppEngine 1.8.4。
XercesImpl
遇到問題,因此我從構建路徑XercesImpl
其刪除。 但是我仍然非常奇怪,該錯誤是在運行時發出的,並且沒有發出任何編譯警告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.