Java Hibernate Web应用示例中的ClassNotFoundException
我在hibernate web应用程序FileNotFoundException中出错,我为其提供了正确的文件路径 下面是我的错误日志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
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" />