Java Hibernate Web应用示例中的ClassNotFoundException

Java Hibernate Web应用示例中的ClassNotFoundException,java,hibernate,jsp,servlets,Java,Hibernate,Jsp,Servlets,我在hibernate web应用程序FileNotFoundException中出错,我为其提供了正确的文件路径 下面是我的错误日志 java.lang.ClassNotFoundException: javax.xml.bind.JAXBException at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275) at org.apache.ca

我在hibernate web应用程序FileNotFoundException中出错,我为其提供了正确的文件路径

下面是我的错误日志

java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1104)
    at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43)
    at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:86)
    at org.hibernate.cfg.Configuration.<init>(Configuration.java:123)
    at org.hibernate.cfg.Configuration.<init>(Configuration.java:118)
    at eql.com.dao.EmployeeDAO.addEmployee(EmployeeDAO.java:16)
    at eql.com.controller.EmployeeControllerServlet.doPost(EmployeeControllerServlet.java:27)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:407)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.base/java.lang.Thread.run(Thread.java:844)
Hibernate配置如下


org.postgresql.Driver
jdbc:postgresql://localhost:5432/testdb
博士后
sql123
org.hibernate.dialogue.PostgreSqlDialogue
真的
真的
创造

您应该了解的主要内容:
hibernate.cfg.xml
的路径不应该使用源代码树(如图中所示,由您提供),而应该使用类路径资源的一些规则来确定

因此,对于您的源代码树:

    Configuration configuration = new Configuration()
        .configure("src/main/resources/hibernate.cfg.xml");
这也应该改变

    Configuration configuration = new Configuration().configure();
还有这个

 <mapping resource="src/main/resources/Employee-hbn.xml" />

应该是

 <mapping resource="Employee-hbn.xml" />

java.lang.ClassNotFoundException:javax.xml.bind.jaxBeException

出现此错误是因为类路径中没有包含
javax.xml.bind.JAXBException
class的jar。其他原因可能是:存在两个版本不同的jar,或者jar由不同的类加载器加载(不太可能)


因此,主要原因是您指定了不正确的资源路径,然后生成了
javax.xml.bind.JAXBException
,但类路径中没有用于此异常的类。因此,原始错误被
java.lang.ClassNotFoundException:javax.xml.bind.jaxBeException

隐藏。堆栈跟踪没有显示任何
FileNotFoundException
。我在addEmployee()方法中发现错误,该方法没有找到hibernate.cfg.xml文件。…
在addEmployee()中发现错误。
很好&很好-要显示吗?“ClassNotFound-stack跟踪”有什么好处?hibernate怎么知道
hibernate.cfg.xml
驻留在…资源中?我按照上面的方法做了,然后得到了hibernate.propertiesfound@JyotiJadhav因此,您已修复了问题中的一个错误。这是另一个错误。和
hibernate.properties
文件对于hibernate不是必需的。也许最好用这个错误创建其他问题(使用堆栈跟踪)。另外,请提供一个Hibernate版本
 <mapping resource="Employee-hbn.xml" />