Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NoClassDefFoundError:org/hibernate/MappingException_Java_Hibernate_Struts - Fatal编程技术网

java.lang.NoClassDefFoundError:org/hibernate/MappingException

java.lang.NoClassDefFoundError:org/hibernate/MappingException,java,hibernate,struts,Java,Hibernate,Struts,启动ApacheTomcat服务器时出现以下错误。我已经将Struts与Hibernate框架集成 谁能告诉我这个例外的原因吗 启动服务器时出现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 productio

启动ApacheTomcat服务器时出现以下错误。我已经将Struts与Hibernate框架集成

谁能告诉我这个例外的原因吗

启动服务器时出现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

如果您在eclipse中工作,那么应该在web项目类路径中添加hibernate JAR并部署程序集

通过右键单击project->properties->deploy assembly并添加JAR来实现这一点。 或者(如果JAR位于WEB-INF/lib文件夹中)
右键单击项目->属性->java构建路径->选择“库”选项卡,然后添加库,然后选择您询问此异常原因的weba bb库

请看日志告诉我们什么

由于引发意外的异常或错误,无法初始化Struts ActionServlet,因此将servlet标记为不可用。这很可能是由于库依赖项不正确或缺失所致

当您启动服务器时,您的应用程序已经通过删除war文件或通过eclipse手动部署,应用程序的第一个入口点是部署描述符,即web.xml。在这里,您已经将servlet定义为Struts Action servlet,因此将尝试初始化Struts ActionServlet

现在,在struts-config.xml中,您可能有如下内容

<struts-config>
....
    <plug-in className="com.example.MyHibernatePlugin">
        <set-property property="path" value="/hibernate.cfg.xml"/>
    </plug-in>
....
<struts-config>
说到这里,现在您的日志试图说明为什么在初始化Struts Action Servlet时会出现映射异常

类路径中必须有所有与Struts和Hibernate相关的库。
不要一次全部添加,逐个添加,查看它抱怨的是哪个jar,然后添加,直到它停止抱怨。

你真的认为只显示错误日志会有帮助吗?我只是想知道这个错误是因为配置问题,或者我错过了一些二进制文件或jar。因为我是这个论坛的新手,我是否也应该发布所有相关的类?这可能会帮助您:“如果Java虚拟机或类加载器实例试图加载类的定义(作为普通方法调用的一部分,或作为使用新表达式创建新实例的一部分),并且找不到类的定义,则抛出。”-对于详细的解释,看起来像是一个配置文件。我肯定会遵循这种在eclipse中添加JAR的方法。仅供参考,您也可以尝试使用Maven添加依赖项。优点是Maven可以为您解决依赖关系。您可以阅读更多关于Maven的信息,并使用Maven尝试相同的项目,而不是自己将JAR添加到lib文件夹中。
import org.apache.struts.action.PlugIn;
public class HibernatePlugin implements PlugIn { ....{your code} }