Я немного поиграл с Jena, и я создал проект Java Web Application в Java в Eclipse. Я загрузил библиотеки Jena 2.0 и добавил их в путь сборки проекта, а также в папку /war/WEB-INFO/lib/
.java.lang.NoClassDefFoundError: Не удалось инициализировать класс com.hp.hpl.jena.query.Query
Мой простой сервлет пытается создать экземпляр запроса, используя следующую строку кода
...
Query query = QueryFactory.create(queryString);
...
Таким образом, нет никаких ошибок компиляции и, как я сказал, Libarries оба в Build Path и в Lib папку под WEB -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)
сервлета Peri pheralServlet.java и строка 102 в методе extractPlace - это выше, где я пытаюсь создать экземпляр объекта Query.
Может ли кто-нибудь дать мне ключ к вопросу о моей проблеме? Для меня это похоже на отсутствующее включение jar или что-то в этой строке, но, как я уже сказал, я включил все файлы Jena Jena в как путь сборки проекта, так и папку lib в WEB-INF.
спасибо.
EDIT: Странная вещь, что QueryFactory
это на самом деле не дает никаких ошибок и как Query
и QueryFactory
находятся в том же пакете права Jena?
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)
...
Если я перезагрузить страницу после этого я получаю снова оригинал исключение. Я занимался некоторыми исследованиями, и я нашел некоторые связанные проблемы, связанные с 2009 годом, и поэтому версии Jena 2.6. Предположим, что мы находимся в 2013 году и Йена превратилась в его 2,10 версии я предполагаю, что они не настолько актуальны
Добавить Apache Jena jar в проект вашего затмения: https://www.cs.duke.edu/courses/fall06/cps004g/assign/shotgun/addlibrary.html –
У меня уже есть все банки Jena. Кроме того, этот плагин Google Eclipse использует Jetty. Это действительно имеет значение? – dncolomer
Возможно, у вас есть смесь банки Jena или они могут быть повреждены - убедитесь, что вы используете только банки из той же версии, например. 2.10.0 – AndyS