2014-02-11 2 views
0

Я получаю следующую ошибку при запуске сервера Apache Tomcat. Я включил Struts с инфраструктурой Hibernate.java.lang.NoClassDefFoundError: org/hibernate/MappingException

Может ли кто-нибудь сказать мне причину этого исключения?

Журналы ошибок PFA, приходящие при запуске сервера?

Feb 11, 2014 10:46:09 AM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\eclipse-standard-kepler-R-win32\eclipse;;. 
Feb 11, 2014 10:46:09 AM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:StrutsOne' did not find a matching property. 
Feb 11, 2014 10:46:09 AM org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8080 
Feb 11, 2014 10:46:09 AM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 766 ms 
Feb 11, 2014 10:46:09 AM org.apache.catalina.core.StandardService start 
INFO: Starting service Catalina 
Feb 11, 2014 10:46:09 AM org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.32 
Feb 11, 2014 10:46:10 AM org.apache.struts.action.ActionServlet initChain 
INFO: Loading chain catalog from jar:file:/C:/Users/Mohit/workspace/Struts/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/StrutsOne/WEB-INF/lib/struts-core-1.3.10.jar!/org/apache/struts/chain/chain-config.xml 
Feb 11, 2014 10:46:10 AM org.apache.struts.action.ActionServlet init 
SEVERE: Unable to initialize Struts ActionServlet due to an unexpected exception or error thrown, so marking the servlet as unavailable. Most likely, this is due to an incorrect or missing library dependency. 
java.lang.NoClassDefFoundError: org/hibernate/MappingException 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) 
    at java.lang.Class.getConstructor0(Unknown Source) 
    at java.lang.Class.newInstance0(Unknown Source) 
    at java.lang.Class.newInstance(Unknown Source) 
    at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:172) 
    at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:147) 
    at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:842) 
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:359) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:212) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4420) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4733) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: java.lang.ClassNotFoundException: org.hibernate.MappingException 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
    ... 27 more 
+0

Вы действительно думаете, что показывать только журнал ошибок поможет? –

+0

Я просто хотел знать, что эта ошибка возникает из-за проблемы с конфигурацией или я пропустил некоторые двоичные файлы или банки. – user3287449

+0

Как я новичок в этом форуме, должен ли я публиковать все соответствующие классы? – user3287449

ответ

0

You спрашивали причину этого исключения.

Пожалуйста, смотрите, что журнал говорят нам,

«Не удалось инициализировать Struts ActionServlet из-за неожиданного исключения или ошибки брошенной, поэтому маркировка сервлет как недоступный. Скорее всего, это происходит из-за неправильного или отсутствует библиотека зависимостей»

При запуске сервера, где приложение уже развернут либо вручную путем сбрасывания войны файл, или работая через затмение, первая точка входа приложения дескриптор развертывания, то есть web.xml. Здесь вы определили свой сервлет как Servles Action Servlet, поэтому будет предпринята попытка инициализировать Struts ActionServlet.

Теперь внутри распорок-config.xml, вы могли бы иметь что-то вроде этого,

<struts-config> 
.... 
    <plug-in className="com.example.MyHibernatePlugin"> 
     <set-property property="path" value="/hibernate.cfg.xml"/> 
    </plug-in> 
.... 
<struts-config> 

com.example MyHibernatePlugin.java

import org.apache.struts.action.PlugIn; 
public class HibernatePlugin implements PlugIn { ....{your code} } 

Сказав это, теперь ваши журналы пытаются что-то сказать, из почему он получает исключение отображения при попытке инициализировать Servlets Action Servlet.

У вас должны быть все библиотеки, связанные с Struts и Hibernate в вашем пути к классам. Не добавляйте все одновременно, добавьте один за другим, посмотрите, в какую банку он жалуется, а затем добавьте, пока он не перестанет жаловаться.

+0

Спасибо, пожалуйста, за подробное объяснение. Я обязательно буду следовать этому подходу добавления банок в затмение. – user3287449

+0

Просто fyi, вы также можете попробовать добавить зависимости, используя Maven.http://maven.apache.org/. Преимущество в том, что Maven разрешает вам зависимости. вы можете узнать больше о Maven и попробовать один и тот же проект с Maven, вместо того, чтобы добавлять баннеры в папку lib самостоятельно. – spiderman

0

, если вы работаете в упадке, вы должны добавить Hibernate банки в вашем вебе-проект и классах развернуть сборку.

сделайте это, щелкнув правой кнопкой мыши по проекту -> свойства -> развернуть сборку и добавить банки. или (если банки находятся в/Lib папку WEB-INF) правой кнопкой мыши по проекту -> Свойства -> путь компоновки Java -> выбрать «библиотеки» вкладки, а затем добавить библиотеку и выберите Weba Б.Б. библиотеки

Смежные вопросы